Python 在django中创建admin reg时获取对象没有属性错误
我只有在创建我的第一个用户时才遇到这个错误,这个用户应该是管理员用户。我怎样才能解决这个问题 错误:Python 在django中创建admin reg时获取对象没有属性错误,python,django,django-admin,Python,Django,Django Admin,我只有在创建我的第一个用户时才遇到这个错误,这个用户应该是管理员用户。我怎样才能解决这个问题 错误: response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/Users/Johnny/Desktop/pythondjango/django/user_dashboard/apps/login/views.py", line 18, in register regstatus = Use
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/Johnny/Desktop/pythondjango/django/user_dashboard/apps/login/views.py", line 18, in register
regstatus = User.userManager.register(**request.POST)
File "/Users/Johnny/Desktop/pythondjango/django/user_dashboard/apps/login/models.py", line 43, in register
new_user.update(user_level='admin')
AttributeError: 'User' object has no attribute 'update'
代码:
views.py
def register(request):
regstatus = User.userManager.register(**request.POST)
if regstatus[0]:
request.session['user_id'] = regstatus[1]
return redirect(reverse('dashboard:index'))
else:
for message in regstatus[1]:
messages.warning(request, message)
return redirect(reverse('login:index'))
models.py:
new_user = self.create(email=email, first_name=first_name, last_name=last_name, password=pw_hash)
# Make first registered user an admin
if new_user.id == 1:
new_user.update(user_level='admin')
return (True, new_user.id)
这两段代码是我当前出错的地方。非常感谢您的帮助如果您只想更改obj的字段值,您应该将其指定为属性,然后对其调用
.save()
new_user.user_level = 'admin'
new_user.save()
如果您只想让第一个创建的用户成为管理员,那么您只需要
User.objects.filter(id=1).update(user_level='admin')
我假设您没有使用django.contrib.auth.models.User,因为它没有用户级别字段。如果您想修复特定的代码位,您已经粘贴了
new_user = self.create(email=email, first_name=first_name, last_name=last_name, password=pw_hash)
# Make first registered user an admin
if new_user.id == 1:
new_user.user_level='admin')
new_user.save()
return (True, new_user.id)
但实际上,您最好使用一个久经考验的django regsition/用户管理软件包。强烈推荐django allauth(我与它没有任何关联)默认django用户Deosno没有用户级别我假设您需要一个可以登录django默认管理站点的用户,它是“超级用户”,所以使用超级用户创建用户并具有员工权限,这样做
user = User.objects.get(id=1)
user.is_staff = True
user.is_superuser = True
user.save()
谢谢,这很有帮助。django新手。请看这是推荐django的最好地方。django非常简单。花点时间玩一下吧,我试着给你们所有人打分,但还没排到第15位。