这应该是一个Django特定的,但我想它是Python。Django - 保留原始方法的工作并添加新的自定义验证
基本上,我不想重写我继承的类中的原始方法的工作(可能是一个Model类),但我想添加额外的验证。 这可能吗?任何提示?
class MyUserAdminForm(forms.ModelForm):
class Meta:
model = User
def clean(self):
// do some additional work even though it's cleaned by parent's clean method
对于OP,请注意''super'的问题:第一个参数是* current *类的名称。 – 2012-07-08 19:29:00
@jdi谢谢。这是非常有用的知道。我正在考虑同样的事情,但我只看到过__init__'被使用。所以我可以用任何'clean_'方法做同样的事情,或者只是碰巧有任何方法:) – User007 2012-07-08 19:31:24
@ User007:雅几乎。就像我说的那样,init的超级普通,所以我相信你已经看到了它。 'super()'是一个帮助函数,用于查找要调用的正确的超类方法。这是一个明智的做法'forms.ModelForm.clean(self)'。超级数字出哪个班级给你打电话“干净”。 – jdi 2012-07-08 21:32:59