ジャンゴ1.10のModelFormとunique_together検証
documentaionはきれいな方法が正しくオーバーライドされた場合のModelFormが一緒に独自の検証と言います。 https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#overriding-the-clean-method
私はunique_togetherの検証がうまくいかず、何か間違ったことをしました。
>>> from wiki.models import Wiki
>>> Wiki.objects.all()
<QuerySet [<Wiki: image/1/fdfff>, <Wiki: image/1/fdffff>]>
ここで、imageはrelated_model、1はrelated_idです。
このオーバーライドで何が問題なのか理解してもらえますか?
class WikiForm(ModelForm):
class Meta:
model = Wiki
fields = ['related_model', 'related_id', 'article']
unique_together = (("related_model", "related_id"),)
def validate_related_model(self):
...
def validate_related_id(self):
...
def clean(self):
self.validate_related_model()
self.validate_related_id()
# To maintain unique_together validation,
# we must call the parent class’s clean() method.
return super(WikiForm, self).clean()
ありがとうございました。 – Michael