MU
July 21, 2020, 6:12 p.m.
Change likedislike app to reaction app
Hi, I create app following the tutorial on evileg, but I do some changes.
My code:
- class LikeDislikeManager(models.Manager):
- use_for_related_fields = True
- def likes(self):
- # We take the queryset with records greater than 0
- return self.get_queryset().filter(vote__gt=0)
- def dislikes(self):
- # We take the queryset with records less than 0
- return self.get_queryset().filter(vote__lt=0)
- def sum_rating(self):
- # We take the total rating
- return self.get_queryset().aggregate(Sum('vote')).get('vote__sum') or 0
- class LikeDislike(models.Model, Activity):
- LIKE = 1
- POWER = 1
- WOW = 1
- SUCCESS = 1
- BLOW = 1
- VOTES = (
- (LIKE, 'Polubienie'),
- (POWER, 'Jest moc!'),
- (WOW, 'Wow'),
- (SUCCESS, 'Świetnie!'),
- (BLOW, 'Mózg rozwalony!'),
- )
- vote = models.SmallIntegerField(verbose_name='Like', choices=VOTES)
- user = models.ForeignKey(User, verbose_name='Użytkownik polubił', on_delete=models.CASCADE)
- created_at = models.DateTimeField(auto_now_add=True)
- content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
- object_id = models.PositiveIntegerField()
- content_object = GenericForeignKey()
- objects = LikeDislikeManager()
- @property
- def activity_actor_attr(self):
- return self.user
I don't change views.py and almost everything works fine but reaction count. I don't know how to count particural reaction. Any idea? :)
2
100
The question is asked by the articleDjango - Tutorial 023. Like Dislike system using GenericForeignKeyDo you like it? Share on social networks!
- Last comments
- AKApril 1, 2025, 11:41 a.m.Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VPMarch 9, 2025, 4:14 p.m.Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- ИМNov. 22, 2024, 9:51 p.m.Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
- Now discuss on the forum
- МАApril 1, 2025, 4:21 p.m.0ff763fe-4e50-455d-a3a6-5699c243b1a5_17_44_22_1.xml
- fFeb. 15, 2025, 1:46 p.m.Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Hello,
In my tutorial I use +1 and -1 for Like and Dislike, because of it is very easy to get total sum, like rating. But you have different idea of reaction. You can not use +1 and -1 and make sum of these reaction.
But you can set up different types of reactions like this
And you need to write the following manager
But in this conception you don't use sum_rating . I think it is useless
Thank you! This is it. :)