2013-10-14 46 views
0

尝试为表单中的选择字段编写自定义验证。在模板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 

不工作我也试图让网页上的错误,我看到该值在页面上。 索取信息POSTmyselect u'1'但当地瓦尔说value myselect <Myselect: First>任何帮助吗?

回答

0

您需要在选择不刺痛的数据值进行比较。

正如您已经指出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 
+0

我已经尝试 '1' 和1,但没有。 – Goran

+0

你试过'pdb' /'ipdb'看到什么'self.cleaned_data'包含 – rockingskier

+0

我不知道如何 – Goran