Поле формы Django, созданное в __init__, не существует в request.POST - PullRequest
0 голосов
/ 03 марта 2019

Form.py

class FormA(forms.ModelForm):
   fieldA = forms.CharField(required=True)
   fieldB = forms.CharField(required=True)

def __init__(self, *args, **kwargs):
   super(OfflineAccountEditForm, self).__init__(*args, **kwargs)
   self.fields['fieldC'] = forms.CharField(required=True)

class Meta:
model = Profile
fields = ('username','first_name','last_name')

Как видите, я пытаюсь инициировать новое поле с именем fieldC в функции init.Во время запроса метод get, он хорошо отображается в форме.

Однако, когда я отправляю форму, я распечатываю свою форму, поле fieldC отсутствует.

if request.method == 'GET':
    if obj:
        form = FormA(instance=obj)
    else:
        form = FormA()
else:
    if obj:
        form = FormA(request.POST, instance=obj)
    else:
        form = FormA(request.POST)

    print form

Когда я запускаю cleaned_data, оно не может найти поле.

fieldC = form.cleaned_data['fieldC']

Есть решение?Пожалуйста, руководство.Заранее благодарим и ценим вашу помощь.

1 Ответ

0 голосов
/ 03 марта 2019

Может быть потому, что вы не сделали отступ для своего __init__() метода?или Meta class.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...