【发布时间】:2021-08-21 18:15:35
【问题描述】:
我是 Django 新手,发现了一些我不太明白的东西:我使用自定义字段扩展了 django auth 的默认用户类,如下所示:
class User(AbstractUser):
business_entity = models.ForeignKey('BusinessEntity', on_delete=models.PROTECT)
在设置文件中,我还添加了所需的AUTH_USER_MODEL = 'core.User',因为我的新用户模型位于核心应用程序中。到目前为止工作正常。
在应用所有迁移之后(即使在擦除数据库并重新应用之后),我还剩下一些我不想创建的额外表,并且 Django 的身份验证应用程序似乎没有使用这些表: Tables created after migration
如您所见,来自 auth 应用程序:auth_group、auth_group_permissions 和 auth_permissions 以及来自核心应用程序:core_user_groups、core_user_user_permissions。
我搜索了很长时间 - 可能是错误的关键字? - 但我无法弄清楚我是否需要所有这些表,尤其是 - 额外的核心表用于什么。你能解释一下吗?
非常感谢!
【问题讨论】:
-
它们来自
django.contrib.auth,有些来自模型中的ManyToManyFields(例如core_user_groups是前缀核心,因为它是AbstractUser中的m2m,因此是您的用户模型也有)。有关详细信息,请参阅Using the Django authentication system (Django docs)。 -
这很有意义,我没有想到 ManyToManyFields 需要额外的表。谢谢你的回答!
标签: python django django-models django-users