【问题标题】:Django randomly order users in adminDjango在管理员中随机排序用户
【发布时间】:2010-09-29 14:55:26
【问题描述】:

我正在尝试创建一个 Django 管理过滤器,它将获取随机的用户组。此时,我有两个问题:

  1. 将自定义过滤器应用于用户模型,并
  2. 显示一组随机用户。

在 #1 上,我尝试使用 User.username.random_filter = True,但它返回一个 AttributeError,说用户没有属性 username

在 #2 上,我知道我可以使用 User.objects.order_by('?')[:50] 获得 50 个随机用户,但我无法弄清楚如何让此类查询的结果显示在管理列表中。据我所知,列表是由 URL 的 GET 请求生成的,但我没有任何运气订购它。

有什么建议吗?

【问题讨论】:

    标签: python django-admin customization


    【解决方案1】:

    如果我是你(我也是),我会停止尝试将此功能与 Django 管理站点集成。根据经验,您会发现您正在尝试做的事情更容易实现为常规视图。当然,它没有那么漂亮,但有效的东西胜过漂亮但无效的东西,对吧?

    【讨论】:

      【解决方案2】:

      这应该很容易做到,只需创建一个带有ordering 属性的ModelAdmin

      应该这样做:

      class UserAdmin(ModelAdmin):
          ordering = ('?',)
      

      【讨论】:

      • 这会让它总是随机的吗?
      • @Colorado:是的,只要你不手动订购其他东西。
      • 对不起,我的意思是“这不会让它总是随机的吗?”我希望大部分时间都能正常订购,但只能根据要求随机排序。
      • @Colorado:Django 管理员不提供这种可能性。您可以手动按任何可见字段排序,但对于其余部分,您只能更改默认排序。
      猜你喜欢
      • 2013-05-09
      • 2011-06-02
      • 2012-11-12
      • 2012-08-07
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      相关资源
      最近更新 更多