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