我想在django应用程序中实现一种跟踪引用的方法。我正在使用默认的用户表。一个用户可以“推荐”多个人,但是一个推荐用户只能由一个用户推荐。
我尝试将其添加到我的models.py中,但这会导致错误。
class Referral(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
referredBy = models.ForeignKey(User, on_delete=models.CASCADE)
这会导致以下错误:
ERRORS:
RateManager.Referral.referredBy: (fields.E305) Reverse query name for 'Referral.referredBy' clashes with reverse query name for 'Referral.user'.
HINT: Add or change a related_name argument to the definition for 'Referral.referredBy' or 'Referral.user'.
我该如何实施呢?
答案 0 :(得分:0)
由于referredBy = models.ForeignKey(User, on_delete=models.CASCADE)
已经引用了OneToOneField
表,因此只需省略Users
。
如果出于某些原因需要同时具有这两列(我看不到为什么),则可以更改模型的related_name
属性:
class Referral(models.Model):
user = models.OneToOneField(User, related_name='user', on_delete=models.CASCADE)
referredBy = models.ForeignKey(User, related_name='referredBy', on_delete=models.CASCADE)