首页 > 解决方案 > 记录用户的帖子喜欢时间

问题描述

我正在构建一个简单的 BlogApp,我正在尝试record user like post time。我创建了一个名为like_time但问题是当user_1喜欢帖子而不是记录时间但是当user_2喜欢比它重置user_1时间时,但我试图存储不同用户的不同喜欢时间。

模型.py

class BlogPost(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length-300)
    likes = models.ManyToManyField(User, related_name='likes')
    body = models.CharField(max_length=300)
    like_time = models.DateTimeField(auto_now=True)

视图.py

def blog_post_like(request, blogpost_id):
    post = get_object_or_404(BlogPost, pk=blogpost_id)

    if request.user not in post.likes.all():
        post.likes.add(request.user)
        post.like_time = timezone.now()
        post.save()
        return JsonResponse({'disp':'success'})

问题 :-

它正在为同一帖子上的每个用户重置,但我试图为不同的用户存储不同的时间,例如:-

user_1 - liked time - 40 seconds ago

user_2 - liked_time - 30 seconds ago

任何帮助将不胜感激。谢谢

标签: pythondjangodjango-modelstimedjango-views

解决方案


与其声明 Likes 和 BlogPost 之间的关系,不如尝试将其声明到 Like 模型中。

class Like(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    blogPost = models.ForeignKey(BlogPost, on_delete=models.CASCADE)
    like_time = models.DateTimeField(auto_now=True)

推荐阅读