Как создать систему рейтингов
Всем привет. Вопрос такой. У меня есть мини-блог и профили пользователей. На странице профилей пользователей я отображаю информацию:
Количество комментариев этого пользователя;
Количество постов этого пользователя;
Я отображаю количество комментариев в пользовательском профиле шаблона следующим образом:
{{user.comments.count}}
Хотелось бы сделать небольшую рейтинговую систему, например:
Если пользователь оставил 10 комментариев и 10 постов - он кот (слово рядом с username, например).
Если 20 - это собака (слово рядом с username, например).
30 - слон и др.
Для этого я хотел бы иметь отдельную таблицу в базе данных, чтобы потом я мог делать выбор по рейтингу пользователей. Это слово я бы хотел выводить потом везде, где упоминается пользователь (например рядом с ником в комментарии)
Как я могу это реализовать? Буду благодарен за любую помощь
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
- Akiv Doros
- 11 листопада 2024 р. 14:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50бали,
- Рейтинг балів-4
- molni99
- 26 жовтня 2024 р. 01:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80бали,
- Рейтинг балів4
- molni99
- 26 жовтня 2024 р. 01:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20бали,
- Рейтинг балів-10
я бы сделал кастомный queryset, в котором делал бы аннотацию count, а потом исходя из этого делал бы выводы
второй вариант - сделать функцию, которая бы делала count комментов, которые оставил этот пользователь, а потом исходя из этого возвращала бы константу его типов
А как это можно привязать например к закаладкам? Закладки делал по статье
Попробовал так:
Но ничего не выводится. Если у вас есть время, не могли бы вы показать - как бы это реализовали вы?
у меня вот так получилось
я бы сделал эту функцию отдельно и сделал бы ранний return - у вас будет перебираться весь словарь titles, хотя нужное значение может быть в самом начале
а уже в представлении вызывал бы функцию
Спасибо, вроде появляется понимание, а в предатвелнии вызывать функцию - это как (в плане синаксиса) ?)
И еще, если я захочу привязать эту логику к количеству комментариев пользователя,то где мне указать comment.count ?
Комментарии вывожу в шаблоне так:
не, вы сейчас про шаблоны
для шаблонов надо делать тэги (я бы использовал inclusion tag) - https://docs.djangoproject.com/en/3.1/howto/custom-template-tags/#inclusion-tags
представления - это то, что
но лучше вообще это не использовать - шаблоны оч медленно работают (если python код загружается в память, то шаблоны при каждом обращении ищутся и обрабатываются с нуля, а работа с файловой системой сильно медленнее, чем работа с оперативой памятью)
я имел в виду:
тоесть, вернуть эту функцию там, где надо