Djangoフォームでレンダリングするテキストフィールドがあります。このテキスト フィールドには、IP アドレス、URL、通常のテキストなど、さまざまな種類のデータを含めることができます。フォームの前のドロップダウンの入力に応じて、テキスト フィールドを条件付きで検証するにはどうすればよいですか?
たとえば、ドロップダウンで IP アドレスを選択した場合、IP アドレスがテキスト フィールドに入力されたとき以外に、入力時に条件付きで検証エラーをスローするにはどうすればよいですか?
Djangoフォームでレンダリングするテキストフィールドがあります。このテキスト フィールドには、IP アドレス、URL、通常のテキストなど、さまざまな種類のデータを含めることができます。フォームの前のドロップダウンの入力に応じて、テキスト フィールドを条件付きで検証するにはどうすればよいですか?
たとえば、ドロップダウンで IP アドレスを選択した場合、IP アドレスがテキスト フィールドに入力されたとき以外に、入力時に条件付きで検証エラーをスローするにはどうすればよいですか?
ありがとう @karthikr:
from django import forms
class ContactForm(forms.Form):
# Everything as before.
...
def clean(self):
cleaned_data = super(ContactForm, self).clean()
cc_myself = cleaned_data.get("cc_myself")
subject = cleaned_data.get("subject")
if cc_myself and subject:
# Only do something if both fields are valid so far.
if "help" not in subject:
raise forms.ValidationError("Did not send for 'help' in "
"the subject despite CC'ing yourself.")
# Always return the full collection of cleaned data.
return cleaned_data
それはすべてここで説明されています: