【问题标题】:filter staff user in combo box in django admin在 django admin 的组合框中过滤员工用户
【发布时间】:2021-06-10 17:08:52
【问题描述】:

我只想在组合框 django admin 中显示员工用户我最常做的事情。

Article(models.Model):
    author = models.Foreignkey(User)
    ...
    # other fields

我只想在 django 管理组合框中显示员工用户。

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    您可以使用limit_choices_to=… parameter [Django-doc] 限制选择:

    from django.conf import settings
    
    Article(models.Model):
        author = models.Foreignkey(
            settings.AUTH_USER_MODEL,
            on_delete=models.CASCADE,
            limit_choices_to={'is_staff': True}
        )
        # …

    如果您使用ModelFormModelAdmin,这将过滤项目。然而,这在数据库中强制执行,因此如果您进行 ORM 调用,仍然可以将 author 链接到非员工成员。但如果你正确使用表单、模型管理员等,它只会显示Users 和is_staff=True


    注意:通常使用settings.AUTH_USER_MODEL [Django-doc] 引用用户模型比直接使用User model [Django-doc] 更好。更多信息可以查看referencing the User model section of the documentation

    【讨论】:

    • 我总是使用 settings.AUTH_USER_MODEL 但这里写的是 User 。
    猜你喜欢
    • 2010-10-27
    • 2018-09-20
    • 2021-01-01
    • 2010-11-16
    • 2012-03-23
    • 2012-10-18
    • 2014-01-30
    • 2015-10-04
    • 1970-01-01
    相关资源
    最近更新 更多