限制用户使用#34;喜欢"或Django中每个项目的操作

时间:2015-02-06 02:13:50

标签: django

我环顾四周,没有看到任何涉及我问题的内容。

我现在刚接触Django,并通过AJAX get请求使用“喜欢”按钮,按下按钮后按钮消失。但是当你刷新页面时它会重新出现。

现在“喜欢”是名为Category class的模型中的值:

Category(models.Model):
    name = models.CharField(max_length=128, unique=True)
    views = models.IntegerField(default=0, unique=False)
    likes = models.IntegerField(default=0) 

我理解我在模板方面所做的事情,但我不知道如何管理用户是否已经喜欢的东西。我是否需要在我的某个模型中添加某些内容,还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

问题是你不是存储每个用户的喜欢,只是任何人对页面的喜欢的原始计数,这意味着用户可以更喜欢它因为没有办法知道他们已经喜欢它了。

考虑这样的事情:

Category(models.Model):
    name = models.CharField(max_length=128, unique=True)
    views = models.IntegerField(default=0, unique=False)
    fans = models.ManyToManyField(User) 

然后,页面的匹配数量只有category_item.fans.count(),您可以轻松检查User是否在fans的集合中,并相应地添加或删除它们。