以干净的形式获得选定的价值

时间:2013-10-14 11:56:22

标签: django django-forms django-views

尝试为表单中的选择字段编写自定义验证。在模板orm中显示为:

<select id="id_myselect" name="myselect">
    <option value="" selected="selected">---------</option>
    <option value="1">First</option>
    <option value="2">Second</option>
</select>

forms.py

class SubmitForm(forms.ModelForm):
    ...

    def clean_myselect(self):
        data=self.cleaned_data['myselect']
        if data == 'First':
            do something
        return data

不起作用我也试图在页面上出错,我看到页面上有值。 请求信息 POST myselect u'1'但是本地代表说value myselect <Myselect: First>有任何帮助吗?

1 个答案:

答案 0 :(得分:0)

您需要比较选择的数据值而不是sting。

正如您已指出myselect的值为u'1'所以您需要与之比较,而不是字符串表示。

class SubmitForm(forms.ModelForm):
    ...

    def clean_myselect(self):
        data=self.cleaned_data['myselect']
        if data == 1: # 1 not "First"
            do something
        return data