Django Rest Framework, logi c кнопки «Мне нравится» для сообщений в блоге - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть Django Rest Framework проект, пользователи могут публиковать, комментировать любые посты и, как и любой пост. Я не могу понять это логика c в models.py

from django.db import models
from django.contrib.auth.models import User

class Post(models.Model):
    title = models.CharField(max_length=100)
    body = models.CharField(max_length=100)
    post_author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='posts')

    def __str__(self):
        return self.title

class Comment(models.Model):
    body=models.CharField(max_length=100)
    commet_post = models.ForeignKey(Post,on_delete=models.CASCADE,related_name='comments')
    comment_author = models.ForeignKey(User,on_delete=models.CASCADE)

    def __str__(self):
        return self.body

class Like(models.Model):
    like_post = models.ForeignKey(Post,on_delete=models.CASCADE)
    like_author=models.ForeignKey(User,on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)

1 Ответ

1 голос
/ 22 апреля 2020

Вы можете сделать две конечные точки для лайка: 1) для создания и 2) для удаления. Всякий раз, когда кто-то нажимает на кнопку «Нравится», он попадает в конечную точку создания и создает объект «Нравится». Когда кто-то нажимает на отличие, он попадает в конечную точку удаления и удаляет объект. Лайк-модель будет иметь непосредственное отношение к модели пользователя и поста. Вы можете посчитать лайки по запросу, например: Like.objects.filter(like_post=post.id).aggregate(Count('pk'))

...