我有一个表单,我用它来创建一个URL来转发用户。我的表单SearchForm
有一些BooleanFields,一些ModelChoiceFields,一些CharFields等等。在我看来,我想要做的是遍历表单中的(绑定)字段,如果有的话一个值(所有字段都设置为required=False
)添加到名为search
的字符串,如"FieldName=Value"
。有没有办法遍历所有字段,并执行以下操作:
for item in form:
name=item.name
value=item.value
其中name将具有该字段的id,而value将具有用户输入的值?
谢谢!
答案 0 :(得分:1)
对于您的任务,您应该尝试使用表单的cleaned_data
和方法def clean()
。
class SearchForm(forms.Form): # Everything as before. ... def clean(self): cleaned_data = super(ContactForm, self).clean() # get value of the field: # name_field = cleaned_data.get("name_field") if conditions: cleaned_data['FieldName'] = 'value' # If you will want add error messages # when conditions are broken uncomment next line # raise forms.ValidationError("Errors!") # Always return the full collection of cleaned data. return cleaned_data
它的方法必须有效。
答案 1 :(得分:0)
for each in form:
id = each.auto_id
value = each.value()