Как добавить сортировщик в список изменений администратора в Django? - PullRequest
0 голосов
/ 29 октября 2011

В моем приложении я должен добавить ссылку, которая сортирует страницу со списком администраторов. Сортировка должна выполняться по полю, которого нет в list_display.

Моя модель

class Page(models.Model):
    title = models.CharField(max_length=40)
    published_on = models.DateTimeField('Date Published')
    created_on = models.DateTimeField('Date Created')

и мой админ файл

class PageAdmin(PageModelAdmin):
    list_display = ('title', 'published_on')
core.site.register(Page, PageAdmin)

Мне просто нужно добавить ссылку "Недавно добавлено" на странице списка администраторов, чтобы отсортировать список на основе созданного_онуса, который не добавлен в list_display. Любые предложения, пожалуйста

Ответы [ 2 ]

0 голосов
/ 29 октября 2011

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

class Page(...):
    field = ...

    class Meta:
        ordering = ['published_on']

, подробнее об этом см. документы

Вы также можете переопределить набор запросов для вашей конкретной модели. Admin:

class PageAdmin(...):
    list_display = ...

    def queryset(self, request):
        qs = super(PageAdmin, self).queryset(request)
        return qs.order_by('published_on')

есть ощущение, что это работает, только если порядок не установлен, но не может запомнить сейчас.Информация об этом также находится в документах, (извините, прямой ссылки на метод нет)

0 голосов
/ 29 октября 2011

Догадываясь о том, что вы имеете в виду;

Если вы хотели добавить фильтр для created_on, не добавляя его к list_display, вы просто добавляете его как list_filter* 1006.*

class PageAdmin(PageModelAdmin):
    list_display = ('title', 'published_on')
    list_filter = ('created_on',) # The comma is important here
admin.site.register(Page, PageAdmin)
...