Django админ сортировка - PullRequest
0 голосов
/ 14 марта 2011

В моем admin.py есть способ отсортировать этот набор данных по самой последней дате?Как вы можете видеть ниже, это сортировка по алфавиту.

--- Модель:

class Tag(models.Model):
        name = models.CharField(max_length=48, unique=True)
        data = models.ManyToManyField(Product)
        def __unicode__(self):
                return self.name

--- Администратор:

class TagAdmin(admin.ModelAdmin):
        pass
admin.site.register(Tag, TagAdmin)

1 Ответ

2 голосов
/ 14 марта 2011

Вы можете переопределить набор запросов, используемый для поля m2m, с помощью formfield_for_manytomany

class TagAdmin(admin.ModelAdmin):
    def formfield_for_manytomany(self, db_field, request, **kwargs):
        if db_field.name == "data":
            kwargs["queryset"] = Product.objects.order_by('date_created')
        return super(TagAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)

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

class MyManager(models.Manager):
    def get_query_set(self):
         return super(MyManager, self).get_query_set().order_by('date_created') 
         # this would affect any ordering using this model including admin.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...