限制用户更喜欢一篇文章

2024-04-23 07:36:14 发布

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

我有一个代码,允许用户喜欢的职位,但我意识到用户可以喜欢的职位不止一次,我不想。如何限制?你知道吗

我的代码

@login_required
def like_post(request, pk):
    if pk:
        liked_post = Post.objects.get(id=pk)
        count = liked_post.likes
        count += 1
        liked_post.likes = count
        liked_post.save()


    return redirect('/community/post/%s' %liked_post.id)

我试过的

加上这样的东西…但不确定

if post.likes.filter(id=user.id).exists():
        post.likes.remove(user)
    else:
        post.likes.add(user)

Tags: 代码用户idifdefcountrequired职位
1条回答
网友
1楼 · 发布于 2024-04-23 07:36:14

您可以使用unique_together元类选项。这将引发一个验证错误,如果不想报告错误,可以忽略该错误。你知道吗

在您的Likes模型(如果您有)中包括以下内容:

class Meta():
    unique_together = ('id', 'user')

或者添加一个liked_by属性,作为many to many field发布给应该为您管理uniqueness内容的用户。这种关系只能存在一次。您可以使用Post.liked_by.count()来获取like的数量,但是我可以将like计数作为它自己的属性。你知道吗

相关问题 更多 >