カスタムクリーンメソッドでいくつかのフィールドを検証したいと思います。
私はこれまでにこれを持っています:
class ProjectInfoForm(forms.Form):
module = forms.ModelChoiceField(
queryset=Module.objects.all(),
)
piece = forms.CharField(
widget=forms.Select(),
required=False,
)
span = forms.IntegerField(
max_value=100,
initial=48
)
max_span = forms.IntegerField(
max_value=100,
initial=0
)
def clean(self):
span = self.cleaned_data['span']
max_span = self.cleaned_data['max_span']
piece = self.cleaned_data.['piece']
# validate piece
try:
Piece.objects.get(pk=m)
except Piece.DoesNotExist:
raise forms.ValidationError(
'Illegal Piece selected!'
)
self._errors["piece"] = "Please enter a valid model"
# validate spans
if span > max_span:
raise forms.ValidationError(
'Span must be less than or equal to Maximum Span'
)
self._errors["span"] = "Please enter a valid span"
return self.cleaned_data
ただし、これは、両方の句が無効になった場合にのみメッセージの1つを表示します。どうすればすべての無効なメッセージを取得できますか。また、フィールド固有のメッセージが表示されません-特定のフィールドに表示されるメッセージを含めるにはどうすればよいですか?
どんな助けでも大歓迎です。