gpt4 book ai didi

mysql - 如何实现 Django 用户被其他用户引用的关系?

转载 作者:行者123 更新时间:2023-11-30 21:30:40 25 4
gpt4 key购买 nike

我想实现一种方法来跟踪我的 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'.

我该如何着手实现它?

最佳答案

简单地省略 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)

关于mysql - 如何实现 Django 用户被其他用户引用的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56386292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com