如何在Django中为自定义用户添加组?

7

我使用官方文档自定义Django认证创建了用户自定义模型,但是如何添加组和权限呢?我的Django版本为1.9。

3个回答

20

4
谢谢。这个答案很有帮助。我只想再为新手添加一个内容。如果您在已经完成迁移并且使用自定义用户模型的情况下继承PermissionsMixin,它不会创建自定义用户模型与组或权限之间的关系。我曾经困惑了一段时间,因为在继承PermissionMixin后,我无法在数据库中找到用户和组之间或用户和权限之间的关系表。 - Jayground
1
你是否通过 admin.site.register(Group) 注册了 Group 模型? - Yasser Mohsen

11

简而言之

('Group Permissions', {
    'fields': ('groups', 'user_permissions', )
})

详细解释

在 admin.py 中添加以下代码

app/admin.py

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


class AppAdminConfig(UserAdmin):
    # ordering, list_display, etc..
    
    fieldsets = (
        # Other fieldsets

        ('Group Permissions', {
            'classes': ('collapse',),
            'fields': ('groups', 'user_permissions', )
        })
    )


admin.site.register(App, AppAdminConfig)

如果有人对整个代码的外观感兴趣,请查看此处


你能详细说明一下你的答案吗?这个数据结构应该在哪个类中使用? - jlandercy
请检查一下。希望这能澄清问题。如果您仍然不清楚,我会帮助您解决。链接:https://pastebin.com/mk4XsEHj 跳到第36行。 - ajinzrathod
1
谢谢您的回复。您介意更新您的答案并仅添加类嵌套和字段名称(而不是完整的代码)。目标是了解此数据结构应位于哪个类和哪个成员中。您提供的链接很好,但您知道它会失效。我会投票支持您的回答,我相信它会帮助其他用户!祝好! - jlandercy
谢谢,这对新手来说更清晰! - jlandercy

0
作为对@ajinzrathod答案的补充:我尝试了这个解决方案,并因为我漏掉了一些尾随逗号而出现了错误。在admin.py中工作的代码如下所示:
class UserAdminConfig(UserAdmin):
    model = CustomUser
    fieldsets = (
        # Other fieldsets

        ('Group Permissions', {
            'fields': ('groups', 'user_permissions', )
        }),
    )
admin.site.register(CustomUser, UserAdminConfig)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接