从BoundField获取价值

时间:2013-07-10 15:44:16

标签: django forms django-forms

我有一个表单,我用它来创建一个URL来转发用户。我的表单SearchForm有一些BooleanFields,一些ModelChoiceFields,一些CharFields等等。在我看来,我想要做的是遍历表单中的(绑定)字段,如果有的话一个值(所有字段都设置为required=False)添加到名为search的字符串,如"FieldName=Value"。有没有办法遍历所有字段,并执行以下操作:

for item in form:
    name=item.name
    value=item.value

其中name将具有该字段的id,而value将具有用户输入的值?

谢谢!

2 个答案:

答案 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()