添加配置文件后对 admin django 的错误 url

wrong url to admin django after adding profile

我有一个登录页面,我会将其更改为另一个登录页面,然后我关注 these instructions

我添加了这段代码,当我尝试登录我添加的用户管理员时,它把我发送到错误的 url http://localhost:8050/admin/login/?next=/admin/ 并抛出:

RelatedObjectDoesNotExist at /admin/login/

User has no profile

配置文件实例是在 post_save 信号上生成的,也就是说,您必须在添加 Profile class 后至少保存一次 User

在您的情况下,最简单的解决方法是使用 python manage.py createsuperuser.

创建一个新的管理员用户

错误似乎是,您在数据库中有一个 User,但它没有任何 profile 关系 现在

解法:1
通过 django shell.
为数据库中当前存在的 User 设置 profile 实例 1. 通过 python manage.py shell
登录 django shell 2. 运行这些命令,

from django.contrib.auth.models import User
from myapp.models import Profile

for user in User.objects.all():
    Profile.objects.create(user=user)

3。然后登录到 django 管理员


解法:2
删除你的数据库,(如果你正在使用 sqlite,删除相应的文件)和 migrate 然后通过 python manage.py createsuperuser 创建一个新的超级用户命令