В Django, как я могу вернуть общее количество элементов, которые связаны с моделью? - PullRequest
1 голос
/ 22 января 2009

В Django, как я могу вернуть общее количество элементов (количество), которые связаны с другой моделью, например, способ, которым stackoverflow выполняет список вопросов, а затем показывает количество ответов, связанных с этим вопросом.

Это легко, если я получу вопрос, я могу вернуть все ответы, связанные с этим вопросом, но когда я показываю весь список вопросов, становится немного сложно отобразить сбоку счетчик, показывающий общее количество.

Я не знаю, понятно ли, но просто подумайте, как stackoverflow отображает свои вопросы с ответом, количество просмотров рядом с каждым вопросом!

Ответы [ 2 ]

5 голосов
/ 22 января 2009

QuerySet.count ()

См. Также пример , как создать QuerySets для связанных моделей.

1 голос
/ 22 января 2009

Если вы хотите использовать транк, вы можете воспользоваться новым методом annotate () QuerySet, добавленным примерно неделю назад, который решает эту проблему:

http://docs.djangoproject.com/en/dev/topics/db/aggregation/

Если вы хотите придерживаться Django 1.0, вы можете добиться этого несколько менее элегантным способом, используя аргумент select метода extra () QuerySet. Вот пример того, о чем вы говорите, используя extra () здесь:

http://docs.djangoproject.com/en/dev/ref/models/querysets/#extra-select-none-where-none-params-none-tables-none-order-by-none-select-params-none

Наконец, если вам нужна действительно высокая производительность, вы можете перенести количество в отдельный столбец. У меня есть несколько примеров того, как это сделать, в части моей презентации, посвященной модульному тестированию:

http://www.slideshare.net/simon/advanced-django

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