【发布时间】:2016-06-23 09:57:13
【问题描述】:
我需要获取每个继承 models.Model 的类来创建和更新字段。我可以通过向每个字段添加自定义保存方法来实现这一点,
def save(self, *args, **kwargs):
if not self.id:
self.created = timezone.now()
self.modified = timezone.now()
return super(`models.Model`, self).save(*args, **kwargs)
但这违反了 Don'tRepeatYourself 规则。
我已经尝试覆盖models.Model:
class LogModel(models.Model):
created = models.DateTimeField(editable=False)
updated = models.DateTimeField()
def save(self, *args, **kwargs):
if not self.id:
self.created = timezone.now()
self.updated = timezone.now()
return super(LogModel, self).save(*args, **kwargs)
并使用 LogModel 而不是 models.Model,但这失败并出现错误 E006( 字段“x”与模型“y.logmodel”中的字段“x”冲突。
编辑
我的主要问题是如何为我的 models.py 中的所有模型添加自定义特定字段
【问题讨论】:
-
请确保您的缩进在问题中正确显示,这样您就不会收到关于错误内容的反馈。 (对 Python 尤其重要。)另外,请详细说明“没有用”是什么意思。当你尝试时实际发生了什么?它根本没有保存吗?是默默失败了吗?有没有抛出异常?
标签: django django-models