【问题标题】:recording user's post like time记录用户的帖子喜欢时间
【发布时间】:2021-09-10 12:22:40
【问题描述】:

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

models.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)

views.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

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

【问题讨论】:

    标签: python django django-models time django-views


    【解决方案1】:

    不要声明 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)
    

    【讨论】:

    • 我做过一次,但还有另一个问题。 我不能再做一个模型来储存时间吗?
    • 当时有什么问题?
    • 它多次显示类似按钮,所以我放弃了这个想法。
    • 但这是前端问题,不是后端问题。
    • 所以这就是为什么我没有在这个问题中问,我是一个过去的问题,正如我所说的我从未在这个问题中提到过
    猜你喜欢
    • 1970-01-01
    • 2020-12-12
    • 2020-09-03
    • 1970-01-01
    • 2020-11-04
    • 2020-09-11
    • 1970-01-01
    • 2017-10-07
    • 2021-01-27
    相关资源
    最近更新 更多