django modeladmin list_display - PullRequest
       1

django modeladmin list_display

3 голосов
/ 27 августа 2010

Я пытаюсь поиграть с официальным руководством Джанго.В частности, modeladmin list_display:

http://docs.djangoproject.com/en/1.2/intro/tutorial02/#customize-the-admin-change-list

Как добавить столбец, отображающий количество вариантов для каждого опроса в списке?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 27 августа 2010

Вам не нужно редактировать вашу модель, чтобы вычислить столбцы для администратора на лету, создайте функцию в объекте ModelAdmin, которая принимает второй параметр, это будет обычный экземпляр модели опроса. Чем писать код так же, как в модели, вы можете игнорировать себя здесь, так как он не имеет того, что вы хотите.

class PollAdmin(admin.ModelAdmin)
    list_display = (<other_fields>, 'choice_count')

    def choice_count(self, model_instance):
        return model_instance.choice_set.count()
1 голос
/ 27 августа 2010

Добавьте пользовательский метод (скажем, pcount), который возвращает количество вариантов для данного экземпляра Poll. Затем вы можете добавить это к атрибуту list_display в вашем подклассе ModelAdmin.

class Poll(models.Model):
    ...
    def pcount(self):
        return self.choice_set.count()


class PollAdmin(admin.ModelAdmin):
    list_display = (<other fields>, 'pcount', )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...