2012-08-17 101 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']