首页 > 解决方案 > 关注/关注系统 Django - 如何检查用户是否已经关注

问题描述

尝试使用Django. 该模型似乎正在运行,但我在尝试在我的view.

这是视图:

class FollowView(View):
    model = UserRelationships

    def get(self, request, username=None):
        user = self.request.user
        viewed_user = User.objects.get(username=username)
        if user not in viewed_user.followers.all():
            UserRelationships.objects.create(user_id=user, following_user_id=viewed_user)
        data = {}
        return HttpResponse(data)

此时,每次我点击“关注”按钮时都会创建一个新对象,无论用户是否已经关注。

这是UserRelationships model

class UserRelationships(models.Model):
    user_id = models.ForeignKey(User, on_delete=models.CASCADE, related_name="following")
    following_user_id = models.ForeignKey(User, on_delete=models.CASCADE, related_name="followers")

    created = models.DateTimeField(auto_now_add=True)

以及两个相关的 URL(基本和特定应用):

path('accounts/<username>/', include('accounts.urls'))
path('follow/', FollowView.as_view(), name='follow')

然后我通过HTML按钮的模板标签传入当前用户的用户名。

知道我在这里做错了什么吗?

非常感激!

标签: djangodjango-modelsdjango-views

解决方案


推荐阅读