【问题标题】:Ordering the display items alphabetically in Django-Admin在 Django-Admin 中按字母顺序排列显示项目
【发布时间】:2012-08-17 04:37:30
【问题描述】:

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

Django-admin 中的示例:

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'

如何更改它以按字母顺序显示?在这方面需要一些帮助...

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

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

    示例

    class TeamRoleAdmin(admin.ModelAdmin):
       """ Team Role admin view with modifications """
       model = TeamRole
       ordering = ('team', 'role', 'user')
       list_display = ['id', 'user', 'team', 'role']
    

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

    修改全局模型元类,覆盖 ModelAdmin.queryset,有很多方法,但您最有可能需要 Admin 排序。

    【讨论】:

    • 谢谢..看了看但不知道如何使用它...但是您的示例澄清了疑问...
    • 一个问题:在哪里放置 ModelAdmin.ordering = ('foo', )?它应该与实际代码分开吗?我说的对吗?
    • lakesh:在您的 ModelAdmin 定义中,就在 list_display = ('foo', 'bar',) 之类的东西旁边。语法相似是有原因的!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      • 2020-03-29
      • 1970-01-01
      相关资源
      最近更新 更多