您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 使用Django Admin中的UserProfile字段过滤用户列表

5b51 2022/1/14 8:21:27 python 字数 4156 阅读 508 来源 www.jb51.cc/python

我正在尝试使用UserProfile字段过滤Django中的用户列表...我需要实现一个队列系统,其中新用户被放入队列,直到管理员批准它们.我只是在我的UserProfile模型中添加了一个is_in_queue布尔字段...但是,当我在管理区域中显示用户列表时,我意识到你不能使用Model的外键字段过滤列表(在这种情况下,是一个字段)用户资料)显然,lis

概述

我正在尝试使用UserProfile字段过滤Django中的用户列表…我需要实现一个队列系统,其中新用户被放入队列,直到管理员批准它们.

我只是在我的UserProfile模型中添加一个is_in_queue布尔字段…但是,当我在管理区域中显示用户列表时,我意识到你不能使用Model的外键字段过滤列表(在这种情况下,是一个字段)用户资料)

显然,list_display项目可以是callables但list_filter不能,所以我可以列出用户在队列中没有问题的IF,但管理员必须滚动整个用户列表以找出队列中的哪些是没有意义……只过滤队列中的用户(使用userprofile.in_queue)会更加实用……

最后,我考虑将自定义视图添加到我的管理区域,该视图仅列出队列中的用户,但该自定义视图未显示在“管理区域索引”页面上,并且仅为新的过滤组合了一个全新的AdminSite选项似乎有点过头了……

所以基本上总结一下:我可以根据a过滤我的用户列表
UserProfile字段?如果没有,我可以添加可访问的自定义视图
从头版开始,无需创建全新的
AdminSite只针对那个?

class UserAdminManager(models.AdminManager):
"""
Custom manager for the User model.
"""
def get_query_set(self):
    """
    Overwrites the get_query_set to only return Users in the queue.
    """
    return super(UserAdminManager,self).get_query_set().filter(userprofile__queue=True)

通过覆盖get_query_set方法,您可以过滤结果.然后将其分配给User模型的admin_objects属性.

admin_objects = UserAdminManager()

我的示例中的一些属性名称可能是错误的,因为我不知道您的模型设置,但希望您能得到这个想法.

您可以通过查看django文档并搜索自定义管理器”来进一步研究.

总结

以上是编程之家为你收集整理的python – 使用Django Admin中的UserProfile字段过滤用户列表全部内容,希望文章能够帮你解决python – 使用Django Admin中的UserProfile字段过滤用户列表所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶