Прошу прощения, если это дубликат, но я не нашел ответа на свой вопрос.
Моя проблема ниже
Я действительно изо всех сил пытаюсь понятьКак настроить мои представления при использовании ListView.Я читаю документацию по Django, но нахожу ее очень краткой.
Я бы хотел сосчитать вопросы по каждой теме и вернуть тему с наибольшим количеством вопросов.Я мог бы подсчитать количество вопросов по каждой теме со следующей строкой кода в моем models.py (класс темы):
def questions_count(self):
return Question.objects.filter(question__topic = self).count()
Однако я хотел бы вернуть только самую популярную темуи количество вопросов.
Используя представление на основе функций, я бы перебирал темы и создавал две переменные, хранящие название темы и количество вопросов.Однако с ListView я не знаю, использовать ли get_context_data (), get_queryset () или что-то еще.
Мой класс просмотра :
class TopicsView(ListView):
model = Topic
context_object_name = 'topics'
template_name = 'home.html'
Мои модели :
class Topic(models.Model):
name = models.CharField(max_length=30, unique=True)
description = models.CharField(max_length=100)
class Question(models.Model):
....
topic = models.ForeignKey(Topic, related_name='questions', on_delete=models.CASCADE)
....