2010-08-18 1 views
1

Предположим, у меня есть модель книги с языковым полем и внешним ключом для модели Publisher.Django query: как комментировать с фильтрованным счетом?

В настоящее время я использую аннотацию Count в пользовательском диспетчере издателей, чтобы я мог добавить к администратору сортируемый столбец с количеством книг каждого издателя. (см. How to add a sortable count column to the Django admin of a model with a many-to-one relation?)

Моя проблема теперь в том, что мне нужно иметь разные столбцы для книг, опубликованных на каждом языке.

Есть ли способ сделать аннотацию объектом для фильтра соответствующей модели?

ответ

0

Для этой цели можно использовать двойное подчеркивание __. Что-то вроде этого (фрагмент взят из вопроса, связанного с помощью OP): не кажется

class PublisherManager(models.Manager): 
    def get_query_set(self): 
     return super(PublisherManager,self).get_query_set().annotate(lang_count=Count('book__language')) 
+0

Благодаря Манодж, но работать - это подсчет книг, которые * некоторые * язык в противоположность не обнулить/Нет. –

+0

Ах. Mea cupla. Не тестировал его с фактическими данными. –