Регистрация сообщений пользователя как времени

Я создаю простой 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

Любая помощь будет очень признательна. Спасибо.

Вместо того, чтобы объявлять связь между 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)
Вернуться на верх