views.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
forms.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.errors
和form.non_field_errors
什么都不返回。我无法追查表格的错误。
答案 0 :(得分:0)
而不是form1 = Form1(request.POST)
,我使用了
form1 = Form1(temp_arg=obj,data=request.POST)
。它起作用了。