我正在研究django关于书籍的网站,在那里你可以发表评论,评价书籍......我想知道如何以有效的方式存储每个用户的数据,以了解是否用户:
这样,没有用户可以发布2条评论,我可以提供每用户体验。我甚至想限制他们评价的次数(比如每月3次)。问题:
会话似乎没有用,因为数据没有存储在数据库中,一旦用户退出并重新进入页面,会话就消失了(我检查了django文档,但这个例子对我来说似乎没用)。
我考虑在模型的每个实例中添加dicts或列表,并存储所有必要的数据,但我不知道它是否合适/有效
非常感谢你的时间,我希望有人知道!
答案 0 :(得分:1)
达到你的第一个目标:
已发布针对特定图书的评论
您可以创建具有
的新模型class Review(models.Model):
user = models.ForeignKey(...)
book = models.ForeignKey(...)
datetime = models.DateTimeField()
... other fields like review content or score ...
class Meta:
unique_together = [
('user', 'book'),
]
达到你的第二个目标:
已经评了一本书
你可以添加另一个模型"评级"具有类似结构,或者您可以将该信息添加到您的"评论"因为单个用户只能为每本书提供一次评论和一个评级。
为了你的第三个目标:
我甚至想限制他们评价的次数(比如每月3次)。
一种非常简单的方法是将三个DateField添加到您的用户个人资料中(阅读customizing Djangos User model),以记录每个用户给出评分的最后时间。
或者你可以查询"评级"每次用户想要进行新评级时都要建立模型,以检查自该用户的最后一个条目以来是否有足够的时间。