在django中扩展AbstractUser

2024-09-27 22:23:10 发布

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

我试图将AbstractUser子类化,但在运行migrate时遇到了一个错误,makemigrations说No changes detected

django.db.utils.ProgrammingError: relation "auth_group" does not exist

型号:

^{pr2}$

加入设置.py公司名称:

AUTH_USER_MODEL = 'myadmin.SubClient'

Tags: djangonoauthdb错误grouputilsmigrate
2条回答

此错误表示您的数据库中不存在auth_group表。这意味着您没有运行Django的迁移文件(描述数据库结构及其随时间变化的python文件)。在

由于您有自己的模型,首先需要通过运行python manage.py makemigrations为它们创建迁移文件。在

然后运行python manage.py migrate运行所有迁移(Django的+您的),这将创建所有数据库表(包括auth_croup)。在

阅读doc了解更多有关迁移的信息。在

使用AbstractUser时,我可以使用django用户内置的密码重置工作流,例如密码重置、密码重置完成等。 我问这个问题的原因是,我使用AbstractUser扩展了用户模型,但这些内置函数不起作用,我没有收到任何错误,但它将我重定向到搜索页面,并且互联网上没有关于此问题的文档:

from django.contrib.auth import views as auth_views

path('password-reset/', auth_views.PasswordResetView.as_view(template_name='accounts/password_reset.html'),
         name='password-reset'),
    path('password-reset/done/',
         auth_views.PasswordResetDoneView.as_view(template_name='accounts/password_reset_done.html'),
         name='password-reset-done'),
    path('password-reset-confirm/<uidb65>/<token>/',
         auth_views.PasswordResetConfirmView.as_view(template_name='accounts/password_reset_confirm.html'),
         name='password-reset-confirm'),
    path('password-reset-complete/s',
         auth_views.PasswordResetCompleteView.as_view(template_name='accounts/password_reset_complete.html'),
         name='password-reset-complete')

相关问题 更多 >

    热门问题