所以我有这个类,它是一堆其他类的抽象父类,我们称它为 ActivityModel (代表某种最新活动/或对该对象所做的更改),我想重写 save 方法以获取另一个参数保存对象的时间,因此我将其定义如下。
class ActivityModel(models.Model):
last_updated = models.DateTimeField(auto_now=True)
updater = models.ForeignKey(UserProfile)
change = models.CharField(max_length=255)
def save(self, updater, change, *args, **kwargs):
self.updater = updater
self.change = change
super(ActivityModel, self).save(*args, **kwargs)
class Meta:
abstract = True
但是现在我继承这个类的所有模型都不能使用 ModelForms 因为我已经更改了保存方法以要求第二个字段(与经过身份验证的用户相对应的 UserProfile,每次保存时都必须提供)所以我是想知道我是否可以对 ModelForm 类进行子类化以覆盖它的 save 方法,以便它调用新的 ParentModel.save 方法并填写已提供给它的当前登录用户。我想我可以只在表单 init 上提供 UserProfile,但我遇到的一个大问题是是否可以将 ModelForm 类子类化并像 ParentModelForm 类一样创建,然后可以为 ParentModel 的每个子类创建子类。这可能吗?如果可以,我将如何去做?
非常感谢所有帮助!谢谢你的时间!