值错误:无法查询“”:必须是“User”实例

2024-05-29 00:17:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个跟随系统,用户可以得到跟踪投资者不是在用户和用户之间,而是在用户和投资者之间。但是我得到了一个错误。在

我仍然不确定是否需要为follow或not创建一个不同的表,但下面是代码。请分享您的想法,以便更好地在用户和投资者之间建立跟随系统

来自模型.py

class Investor(models.Model):
    investor = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=200, blank=False,
                            null=False, help_text='Full Name')
    followers = models.ManyToManyField(
        User, related_name='followers', blank=True)

    @classmethod
    def follow_investor(cls, investor, follower):
        investor, created = cls.objects.get_or_create(investor=investor)
        investor.followers.add(follower)

    @classmethod
    def unfollow_investor(cls, investor, follower):
        investor, created = cls.objects.get_or_create(investor=investor)
        investor.followers.remove(follower)



url(r'^investor/(?P<action>.+)/(?P<slug>[-\w]+)$',
    views.follow_unfollow_investor, name="follow-unfollow-investor"),


def follow_unfollow_investor(request, action, slug=None):
    follower = request.user
    investor = Investor.objects.get(slug=slug)
    if action == "add":
        Investor.follow_investor(investor, follower)
    elif action == "remove":
        Investor.unfollow_investor(user, follower)
    return redirect('/')

更新 用户来自django.contrib.auth公司.型号

堆栈跟踪

^{pr2}$

Tags: 用户nameobjects投资者modelsdefactioninvestor
1条回答
网友
1楼 · 发布于 2024-05-29 00:17:43

要回答您的问题,请更改:

investor, created = cls.objects.get_or_create(investor=investor)

进入

^{pr2}$

您应该将investor字段重命名为user,以避免混淆;)

相关问题 更多 >

    热门问题