2012-08-17 100 views
6

我现在可以使用list_display []显示我想要的项目,但是我希望它们按字母顺序显示。如何使list_display按字母顺序排列?在Django-Admin中按字母顺序排列显示项目

例在Django管理员:

class PersonAdmin(admin.ModelAdmin): 
    list_display = ('upper_case_name',) 

    def upper_case_name(self, obj): 
     return ("%s %s" % (obj.first_name, obj.last_name)).upper() 
    upper_case_name.short_description = 'Name' 

如何改变这种以字母顺序显示?需要一些帮助...

回答

12

设置ModelAdmin.ordering = ('foo',)订购您的管理员。

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.ordering

修改全球模型元类,重写ModelAdmin.queryset,有很多办法,但你很可能希望管理排序。

+1

谢谢..看着它,但不知道如何使用它...但你的例子澄清了怀疑... – lakesh 2012-08-17 04:57:09

+1

一个qn:在哪里放置ModelAdmin.ordering =('foo',)?它应该与实际的代码分开吗?我对吗? – lakesh 2012-08-17 07:45:44

+0

lakesh:在你的ModelAdmin定义中,就像list_display =('foo','bar',)之类的东西。由于某种原因,语法是相似的! – 2012-08-17 18:57:04

1

在你的模型Meta你可以指定ordering = ['first_name', 'last_name']