次のように定義された形式の選択フィールドがあります
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値が文字列にキャストされる理由に興味があります。選択フィールドでデフォルトのプロンプトを実行し、そのフィールドを必須にする最良の方法は何ですか?