REFERRAL_CHOICES = (
(None, 'Please choose'),
('search', 'From a search engine'),
('social', 'From a social network'),
)
referral_source = forms.ChoiceField(
choices=REFERRAL_CHOICES
)
形式有選擇字段我也有一個clean_company_size
功能如果該字段被設置爲一個良好的值,檢查:
def clean_company_size(self):
company_size = self.cleaned_data.get('company_size', None)
if company_size is None:
raise ValidationError('Please select a company size')
return company_size
如果我將or company_size == 'None'
條件添加到上面的無檢查,所有工作正常。但是,我很好奇爲什麼None值被轉換爲字符串。在選擇字段中完成默認提示並且需要該字段的最佳方式是什麼?
中使用「」代替
None
所有POST和GET變量以及選擇HTML標記值最初都以字符串形式發送。 Django將它們轉換爲-say-int時,它可以從模型中扣除。在你的情況下,無法將「無」字符串與「無」對象區分開來,它們都是可能的值。你可能更喜歡在你的REFERRAL_CHOICHES – furins 2013-03-26 22:43:38中使用「」而不是None。如果你做出這個答案,我會對它進行投票並接受它,因爲它是有效的。 – 2013-03-26 22:44:38
謝謝:)在這裏它是 – furins 2013-03-26 22:53:28