小编jai*_*ano的帖子

在管理界面显示用户组?

contrib.auth 中的 admin.py 定义了在管理界面为用户显示的字段:

list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff')
Run Code Online (Sandbox Code Playgroud)

我想在这里看到每个用户的组:

在此处输入图片说明

仅用于测试目的,当您尝试添加“组”字段时,它会失败:

list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff', 'group')
Run Code Online (Sandbox Code Playgroud)

出现此错误: : (admin.E109) 'list_display[5]' 的值不能是 ManyToManyField。

搜索后,我只找到了将应用程序添加到管理界面或创建自定义用户模型的方法,但我想我错过了一些东西。

那么,该怎么做呢?

已解决--- 感谢@{Alexis No} 的回答

编辑 /usr/local/lib/pyton2.7/dist-packages/django/contrib/auth/admin.py

就在 list_display 之前添加这个寻找组的定义:

def group(self, user):
    groups = []
    for group in user.groups.all():
        groups.append(group.name)
    return ' '.join(groups)
group.short_description = 'Groups'

list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff', 'group')
Run Code Online (Sandbox Code Playgroud)

然后同步数据库,并在 admin 检查更改,注意最后一列:

在此处输入图片说明

python django

7
推荐指数
1
解决办法
2227
查看次数

标签 统计

django ×1

python ×1