我遵循一个基本概念。如何在django中自定义用户。 我不想使用内置身份验证用户。我找到了这个教程,它似乎一直有效。在
整个教程我都完成了。但是,当我运行我的项目,登录并打开用户在管理区,我点击“保存并继续编辑”这给了我错误
我项目中的代码与教程中的代码完全相同。我尝试过删除缓存和迁移,然后重新开始,甚至创建一个新的环境并重新安装django。似乎什么都不管用。在
Environment:
Request Method: POST
Request URL: http://localhost:8000/admin/accounts/user/1/change/
Django Version: 2.0.1
Python Version: 3.5.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/db/backends/base/base.py" in _commit
239. return self.connection.commit()
The above exception (FOREIGN KEY constraint failed) was the direct cause of the following exception:
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
35. response = get_response(request)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/contrib/admin/options.py" in wrapper
574. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/contrib/admin/sites.py" in inner
223. return view(request, *args, **kwargs)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/contrib/admin/options.py" in change_view
1556. return self.changeform_view(request, object_id, form_url, extra_context)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapper
62. return bound_func(*args, **kwargs)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/utils/decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/utils/decorators.py" in bound_func
58. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/contrib/admin/options.py" in changeform_view
1450. return self._changeform_view(request, object_id, form_url, extra_context)
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/db/transaction.py" in __exit__
212. connection.commit()
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/db/backends/base/base.py" in commit
261. self._commit()
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/db/backends/base/base.py" in _commit
239. return self.connection.commit()
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/db/utils.py" in __exit__
89. raise dj_exc_value.with_traceback(traceback) from exc_value
File "/home/tate/virtenvs/tukaha-website/lib/python3.5/site-packages/django/db/backends/base/base.py" in _commit
239. return self.connection.commit()
Exception Type: IntegrityError at /admin/accounts/user/1/change/
Exception Value: FOREIGN KEY constraint failed
我不确定这是怎么回事这和我的django版本有关吗?我用的是2.0。在
我在stackoverflow上看过类似的例子,比如this,但是我在教程中没有使用外键,我甚至不知道在他们的例子中从哪里导入用户对象。。。是不是有些东西我遗漏了,或者是教程遗漏了,而我只是因为一个版本问题跌倒了?在
要重现错误,请严格遵循文本教程here:然后使用超级用户帐户登录。编辑用户,然后单击“保存”并继续编辑。在
感谢任何帮助
我想我已经找到了解决办法。这个问题很可能是由于将默认的AUTH_USER_模型迁移到项目中间的自定义模型时的循环依赖关系问题引起的。在
从Django文档
解决此问题的最佳方法是删除表并删除所有迁移文件,然后使用新生成的自定义模型重新运行迁移。希望这能奏效。
有关如何从内置模型迁移到新模型的更多详细信息,请参见此处 https://code.djangoproject.com/ticket/25313
相关问题 更多 >
编程相关推荐