@NyxDeveloper

Почему при передаче объекта в instance ModelForm дата передается, но не отображается?

Делаю формочку для редактирования объекта бд, хочу сделать так, чтобы при открытии страницы с формой в ней уже были данные. Передаю в instance нужный объект, но значения отображаются только в полх NumberField, Select и TextInput.
При этом в дебагере при инициализации формы и в return значения values заполнены у всех полей.
Подозреваю, что дело здесь в стилях бутстрапа, а может и нет.
Кто уже сталкивался с такой проблемой, подскажите что делать?

forms.py
class EditPriceForm(forms.ModelForm):
    class Meta:
        model = PriceList
        fields = [
            'dateBegin',
            'dateEnd',
            'cena',
            'flCancel',
            'idVallet'
        ]
        widgets = {
            'idVallet': forms.Select(attrs={
                'class': 'form-control'
            }),
            'dateBegin': forms.DateInput(attrs={
                'class': 'form-control',
                'type': 'date',
                'data-inputmask-alias': 'datetime',
                'data-inputmask-inputformat': 'dd/mm/yyyy',
                'data-mask': '',
            }),
            'dateEnd': forms.DateInput(attrs={
                'class': 'form-control',
                'type': 'date',
                'data-inputmask-alias': 'datetime',
                'data-inputmask-inputformat': 'dd/mm/yyyy',
                'data-mask': '',
            }),
        }

    def __init__(self, *args, **kwargs):
        super(EditPriceForm, self).__init__(*args, **kwargs)
        self.fields['cena'].widget = forms.NumberInput(attrs={'class': 'form-control'})
        self.fields['flCancel'].widget = forms.CheckboxInput(attrs={'class': 'form-control'})


views.py
@login_required
def EditPriceView(request, objId):
    if request.method == 'POST':
        form = EditPriceForm(request.POST)
        if form.is_valid():
            obj = PriceList.objects.get(id=objId)
            obj.cena = form.cleaned_data['cena']
            obj.dateBegin = form.cleaned_data['dateBegin']
            obj.dateEnd = form.cleaned_data['dateEnd']
            obj.flCancel = form.cleaned_data['flCancel']
            obj.idVallet = form.cleaned_data['idVallet']
            obj.summaRub = obj.cena + ((obj.cena/100)*2)
            obj.save()
            return redirect('/base/edit_nomenkl/'+str(obj.idNomenkl.id))
    if request.method == 'GET':
        form = EditPriceForm(instance=PriceList.objects.get(id=objId))
        return render(request, 'editPrice.html', {
            'form': form,
            'objId': objId
        })
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы