Django Form表示“字段是必需的”,即使它存在于POST Body中

时间:2016-06-24 03:45:33

标签: python django forms models

即使POST中存在所有必填字段,Django表单也不接受POST(is_valid为False)。

我正在使用一个简单的表单,但使用来自不同模型的查询结果动态生成表单字段。使用以下指南:https://jacobian.org/writing/dynamic-form-generation/

我的观点:

def questionnaire(request):
if request.user.is_authenticated():
    if request.method == 'POST':
        questionnaire_form = Questionnaire(request.POST)
        if questionnaire_form.is_valid():
            return HttpResponseRedirect('')
        else:
            return render(request, 'questionnaire.html', {'form': Questionnaire()})
    else:

        return render(request, 'questionnaire.html', {'form': Questionnaire()})
else:
    return HttpResponseRedirect('')

我的表格

class Questionnaire(forms.Form):
vendor = forms.IntegerField(max_value=10, label="Vendor ID")

def __init__(self, *args, **kwargs):

    fieldlist = OrderedDict()
    for item in ControlQuestions.objects.all():
        fieldlist[str(item.control_id)] = item.question
    super(Questionnaire, self).__init__(fieldlist, *args, **kwargs)
    for item in fieldlist:
        self.fields[item] = forms.BooleanField(label=fieldlist[item], initial="False")

request.body

csrfmiddlewaretoken=****&vendor=1&1=on&2=on&3=on

questionnaire_form.errors

<ul class="errorlist"><li>vendor<ul class="errorlist"><li>This field is required.</li></ul></li></ul>

0 个答案:

没有答案