【发布时间】:2020-06-29 11:58:49
【问题描述】:
我创建基本模型并在我的所有模型中继承它。这是我的BaseModel:
class BaseModel(models.Model):
create_date = models.DateTimeField(auto_now_add=True)
update_date = models.DateTimeField(auto_now=True)
created_by = models.ForeignKey('UserManager.User', default=1, on_delete=models.SET_DEFAULT,related_name='created_%(class)ss')
updated_by = models.ForeignKey('UserManager.User', default=1, on_delete=models.SET_DEFAULT,related_name='updated_%(class)ss')
class Meta:
abstract = True
ordering = ['create_date']
def save(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
if self.user:
if self.user.pk is None:
self.created_by = self.user
self.updated_by = self.user
super(BaseModel, self).save(*args, **kwargs)
现在,我想向其中一个子模型的save 方法添加一些操作,如下所示:
class Child(BaseModel):
# Some fields go here.
def save(self, *args, **kwargs):
# Some operations must run here.
但是子模型的save方法不再运行了!
如何使用子模型的保存方法和abastract=True模型的保存方法?
【问题讨论】:
-
请仅使用版本标签,例如
django-3.0如果您的问题专门针对该版本,并且答案不适用于其他(较早或较晚)Django 版本,例如版本迁移问题。
标签: python django django-models django-inheritance