如何解决我的应用无法识别AUTH_USER_MODEL为默认用户模型
我创建了一个自定义用户模型。我的模型如下:
class User(AbstractUser):
...
Name = models.CharField(max_length=128)
...
当我尝试通过我的应用程序对此模型进行发布请求时,在views.py文件中,我的代码如下所示:
def post(self,request):
name = request.POST['name']
email = request.POST['email']
password = request.POST['password']
age = request.POST['age']
number = request.POST['number']
gender = request.POST['gender']
organisation = request.POST['organisation']
designation = request.POST['designation']
u = User(
Name = name,...
我收到这样的错误:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/core/handlers/exception.py",line 34,in inner
response = get_response(request)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/core/handlers/base.py",line 115,in _get_response
response = self.process_exception_by_middleware(e,request)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/core/handlers/base.py",line 113,in _get_response
response = wrapped_callback(request,*callback_args,**callback_kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/views/generic/base.py",line 71,in view
return self.dispatch(request,*args,**kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/views/generic/base.py",line 97,in dispatch
return handler(request,**kwargs)
File "/Users/adhishwars/Desktop/simulations/beergame/views/instructor.py",line 37,in post
u = User(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/django/db/models/base.py",line 500,in __init__
raise TypeError("%s() got an unexpected keyword argument '%s'" % (cls.__name__,kwarg))
TypeError: User() got an unexpected keyword argument 'Name'
在应用任何迁移之前,我确保在项目开始时将AUTH_USER_MODEL = 'app.User'
包含在settings.py文件中。但是我仍然会收到此错误。
然后,我删除了我的migrations文件夹,删除了db.sqlite3文件,然后运行了python3 manage.py makemigrations应用程序,python3 manage.py migration。我仍然遇到相同的错误。我的应用无法将我的自定义用户模型识别为默认用户模型。
有什么建议吗?
解决方法
尝试以下技巧: 使用Django 3.1版,在auth / forms中,注释掉第10行并将第104和153行中的模型更改为您定义的模型。
,找到了错误的人。在我的views.py文件中,我导入了默认的Django用户模型。
from django.contrib.auth.models import User
这使Django使用了自己的默认用户模型,尽管我使用了自定义的用户模型。一旦我删除该行,它就会起作用。
编辑:对于某些人来说,它可能仍然不起作用。我建议在他们的视图文件中使用以下代码:
from django.contrib.auth import get_user_model
User = get_user_model()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。