为了追踪哪些用户点赞了某个评论,你可以创建一个相关实体。
# 定义Comment模型
class Comment(models.Model):
# 评论文本内容
text = models.CharField(max_length=1024)
# 评论所属的帖子
post = models.ForeignKey(Post, on_delete=models.CASCADE)
# 发表评论的用户
user = models.ForeignKey(User, on_delete=models.CASCADE)
# 定义CommentLike模型,用于记录用户对评论的点赞情况
class CommentLike(models.Model):
# 表示点赞状态,默认为False。也可以更复杂一些,例如使用枚举类型或其他实体。
liked = models.BooleanField(default=False)
# 改变点赞状态的用户
user = models.ForeignKey(User, on_delete=models.CASCADE)
# 被点赞或取消点赞的评论
comment = models.ForeignKey(
Comment,
on_delete=models.CASCADE,
related_name="likes", # 这样可以通过Comment.likes访问到所有点赞记录
)