All work and no play makes Jack a dull boy

sábado, 18 de agosto de 2012

Ordering no Django 1.3

Buenas!

Hoje me deparei com duas situações: preisava ordernar um queryset com dois ou mais campos e ordenar no Admin do Django de forma diferente.

Vai pra lá, vem pra cá e cheguei na seguinte solução:

No modelo inclua o seguinte:
class Meta:
ordering = ('nome_do_campo', 'nome_do_outro_campo', )

Agora, dentro de seu admin.py faça:

from django.contrib.admin.views.main import ChangeList
class SpecialOrderingChangeList(ChangeList):
def get_query_set(self):
queryset = super(SpecialOrderingChangeList, self).get_query_set()
return queryset.order_by(*self.model_meta.ordering)

No seu admin.Model inclua:
def get_changelist(self, request, **kwargs):
return SpecialOrderingChangeList

be happy (e de um retorno se funcionou!)

Nenhum comentário:

Postar um comentário