在我的 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
验证
我考虑过的两个选项(在我写它们时都不起作用):
class MymodelEditform(ModelForm):
class Meta:
model = Mymodel
fields = ['secondField']
这里的问题是clean_secondField
除非我重新定义它,否则不会调用它,并且我想避免clean_secondField
调用其他地方定义的另一个方法(不过,如果它是唯一的选择,那就这样吧)
class MymodelEditform(MymodelAddform):
class Meta:
model = Mymodel
fields = ['secondField']
这里的问题是调用了 clean() 验证,并且由于我只使用了字段的子集,所以它失败了。
问题很明显:我怎样才能让它按预期工作?