0

视图.py

form1 = Form1(temp_arg=obj)
form2 = Form2()
if request.method == 'POST':
    print "submitting form"
    form1 = Form1(request.POST)
    form2 = Form2(request.POST)
    print form1.is_valid             # prints false
    print form2.is_valid             # prints true
    print form1.errors               # prints None
    print form2.errors               # prints None
    print form1.non_field_errors()   # prints None
    print form2.non_field_errors()   # prints None
    if form1.is_valid() and form2.is_valid():
        print "form is valid"        # not executed
        #some code form.save and all
    else:
        print "Error!"               # prints this

表格.py

@parsleyfy
class Form1(ModelForm):
def __init__(self, temp_arg, *args, **kwargs):
    temp_val = temp_arg
    super(Form1, self).__init__(*args, **kwargs)
    self.fields['field1'] = forms.ChoiceField(
        choices=get_field_choices(temp_val))
    class Meta:
        model = Model1

我有两种形式。1 个表单包含需要动态加载的选择字段。我为此编写了一个函数,并从 表单get_field_choices的函数中调用它 。__ init __在我向其中添加 temp_argument 之前,它运行良好。现在的问题是具有动态加载功能的表单没有得到验证。但是form.errorsform.non_field_errors没有返回任何内容。我无法追踪表格有什么问题。

4

1 回答 1

0

而不是form1 = Form1(request.POST),我用

form1 = Form1(temp_arg=obj,data=request.POST). 它奏效了。

于 2013-08-25T00:24:48.013 回答