扩展Djangos AbstractUser时的附加身份验证表

2024-03-29 09:51:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django新手,发现了一些我不太理解的东西:我用一个自定义字段扩展了Django auth的默认用户类,如下所示:

class User(AbstractUser):
    business_entity = models.ForeignKey('BusinessEntity', on_delete=models.PROTECT)

在设置文件中,我还添加了所需的AUTH_USER_MODEL = 'core.User',因为我的新用户模型位于核心应用程序中。到目前为止效果很好

但是,在应用了所有迁移之后(即使在擦除数据库并重新应用之后),我还剩下一些我不想创建的表,Django的auth app似乎没有使用这些表: Tables created after migration

正如您所看到的,有来自auth app的:auth_组、auth_组权限和auth_权限,以及来自core app的:core_用户组、core_用户权限

我搜索了很长一段时间-可能是用了错误的关键字但我无法确定是否需要所有这些表,尤其是额外的核心表的用途。你能解释一下吗

多谢各位


1条回答
网友
1楼 · 发布于 2024-03-29 09:51:07

我很确定这些是django用来存储权限的表,您不应该删除它们。例如,当您成为超级用户(管理员)时,django知道只有他/她才能访问/admin页面。这些知识来自存储在这些表中的权限

如果您不使用这些表,它们很可能只占用最小的空间(根据下面的链接,默认情况下只添加4个权限),您不必担心它们。也就是说,根据您的项目,了解如何很好地管理权限会有很大帮助

有关权限的详细信息,请参见here

相关问题 更多 >