【问题标题】:Ordering users by date created in django admin panel按在 django 管理面板中创建的日期对用户进行排序
【发布时间】:2016-08-10 16:01:30
【问题描述】:

如何在 django 管理面板中对用户进行排序,以便在显示时按创建日期排序?目前它们按字母顺序列出

我知道我可以通过from django.contrib.auth.models import User 导入User 模型

我该怎么做?

【问题讨论】:

标签: python django


【解决方案1】:

要更改管理面板中用户的默认顺序,您可以子类化默认的 UserAdmin 类。在您的应用程序的admin.py

from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

class MyUserAdmin(UserAdmin):
    # override the default sort column
    ordering = ('date_joined', )
    # if you want the date they joined or other columns displayed in the list,
    # override list_display too
    list_display = ('username', 'email', 'date_joined', 'first_name', 'last_name', 'is_staff')

# finally replace the default UserAdmin with yours
admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)

有关详细信息,请参阅documentation

【讨论】:

  • 好的,我会尝试在主项目目录中创建一个 admin.py 文件
  • 在主项目目录中创建了一个admin.py;什么也没发生。
  • 抱歉,命名错误,已在我的回答中更正 - 不在您的项目目录中,在您的应用程序目录中 (your_project/your_app_name/admin.py)。
  • 这就是它所在的地方,同样的事情发生了:webapp/mysite/admin.py
  • 该示例在我的一个项目中使用 Django 1.10(复制并粘贴)进行了测试,因此我可以保证它可以正常工作,一种可能是 django.contrib.admin 在您的项目中配置错误,请参阅我在答案中链接的文档。
【解决方案2】:

管理站点将默认为模型本身指定的顺序,例如

class MyUserModel:
    created = models.DateTimeField()

    class Meta:
        ordering = ('created', )

如果你想要更灵活的东西,即如果你想使用没有subclassing it的Django默认用户模型,看看https://docs.djangoproject.com/ja/1.9/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_display

--

编辑:虽然我说的并不完全错误,但@rafalmp 的答案是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2015-06-21
    • 1970-01-01
    相关资源
    最近更新 更多