Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django中创建admin reg时获取对象没有属性错误_Python_Django_Django Admin - Fatal编程技术网

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位。