私のDjangoアプリでは、モデル(Mymodelと呼びましょう)とフォームを使用しています:
class Mymodel(models.Model):
firstField(...)
secondField(...)
class MymodelAddform(ModelForm):
def clean_firstField(self):
#stuff
def clean_secondField(self):
#stuff again
def clean(self):
#performs stuff with all the fields
class Meta:
model = Mymodel
MymodelEditform
ここで、 Mymodel に基づいて、 のみを使用してsecondField
、secondField
検証のみを使用して、別のフォーム を追加したいと思います。
私が検討した2つのオプション(どちらも私が書いたようには機能しません):
class MymodelEditform(ModelForm):
class Meta:
model = Mymodel
fields = ['secondField']
ここでの問題は、clean_secondField
再定義しない限り呼び出されないことです。別の場所で定義された別のメソッドを呼び出すことは避けたいと思いclean_secondField
ます (ただし、それが唯一のオプションである場合は、それで構いません)。
class MymodelEditform(MymodelAddform):
class Meta:
model = Mymodel
fields = ['secondField']
ここでの問題は、 clean() 検証が呼び出されることです。フィールドのサブセットのみを使用しているため、失敗します。
問題は非常に明白です。どうすれば意図したとおりに機能させることができますか?