Как выполнить оценку по звездам, используя django и ajax? - PullRequest
0 голосов
/ 06 февраля 2019

Я хочу сделать звездный рейтинг в своем приложении блога для лучшего взаимодействия с пользователем ... Но я не смог выступить в django, используя ajax ... Я в основном не хочу использовать какое-либо стороннее приложение для моего проекта блога...Я хочу сделать вручную, используя django и ajax ...

Это моя модель блога:

class Blog(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
    date = models.DateTimeField(default=datetime.now)
    blog_title = models.CharField(max_length=255,unique=True)
    likes = models.ManyToManyField(settings.AUTH_USER_MODEL,related_name='likes',blank=True)
    description = models.TextField()
    blog_image = models.ImageField(upload_to='blog_image', null=True, blank=True)
    category = models.ForeignKey(categories,on_delete=models.CASCADE,related_name='blogs')
    blog_views = models.IntegerField(default=0)

Кто-нибудь знает, как это сделать?

СпасибоВы заранее

1 Ответ

0 голосов
/ 06 февраля 2019

Я предполагаю, что вы пытаетесь оценить блог 1-5.

Если вы хотите сохранить каждый голос за блог, вам нужно будет сохранить дополнительную модель для голосов,что-то вроде:

class BlogStars(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    stars = models.IntegerField(default=0)

За каждый голос вы сохраняете пользователя, за проголосовавший блог и количество звездочек.

После этого все, что вам нужно сделать, этоЧтобы запросить BlogStars:

stars = BlogStars.objects.filter(blog=my_blog).aggregate(Avg('stars'))

Сохранение данных с помощью Ajax, это просто вызов ajax в бэкэнд-представление.В любом случае, посмотрите этот учебник в качестве примера, хотя он использует PHP, он даст вам хорошую идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...