字段.E305反向查询名称与反向查询名称冲突



我希望在每个模型中都有审计列。然而,一旦两个模型有相同的代码,我就会得到一个错误"(fields.E305(反向查询"app"的名称。Model.created_on与应用程序的反向查询名称冲突。型号.created_on'.

  • created_on
  • 创建者
  • 更新日期
  • 更新者

示例


class ModelB(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='created_by', 
on_delete=models.CASCADE)
updated_on = models.DateTimeField(auto_now=True)
updated_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='updated_by', on_delete=models.CASCADE)
class ModelB(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='created_by', 
on_delete=models.CASCADE)
updated_on = models.DateTimeField(auto_now=True)
updated_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='updated_by', on_delete=models.CASCADE)

我并不真的需要每个用户都有一个反向键,但如果需要的话,我想要一种能够查找user_id的方法。

我用以下方法解决了这个问题。

created_on = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='created_by_%(class)s_related', on_delete=models.CASCADE)
updated_on = models.DateTimeField(auto_now=True)
updated_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='updated_by_%(class)s_related', on_delete=models.CASCADE)

引用抽象Django类中的多个外键字段

最新更新