2016-11-16 7 views
1

adminユーザーになると思われる最初のユーザーを作成するときにのみこのエラーが発生しています。どうすればこの問題を解決できますか?djangoでadmin regを作成しているときに、オブジェクト取得中に属性エラーが発生しない

エラー:

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) 

コードのこれら二つのスニペットがあります。どんな助けもありがとうございます

答えて

1

objのフィールド値を変更したいだけの場合は、それを属性として割り当ててから.save()を呼び出してください。

new_user.user_level = 'admin' 
new_user.save() 
+0

大変ありがとうございました。 – Jives

1

あなただけ最初に作成したユーザーに管理者をしたい場合は、あなたが必要とするすべては、私はそれがないので、あなたがdjango.contrib.auth.models.Userを使用していないと仮定し

User.objects.filter(id=1).update(user_level='admin') 

ですuser_levelフィールドがあります。あなたは、コードの特定のビットを修正したい場合は、

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) 

を貼り付けているが、本当にあなたは実証済みジャンゴregsitration /ユーザ管理パッケージのいずれかを使用したほうが良いです。 django-allauthは非常にお勧めできます(私はそれと提携していません)

+0

はうまくいった、ありがとう。 – Jives

+0

素晴らしい、私はあなたすべてを評価しようとしましたが、まだ15にランクされていません。 – Jives

1

デフォルトdjangoユーザーdeosnotにはuser_levelがあります。djangoのデフォルトのadmin-siteにログインできるユーザーが必要ですスーパユーザーとスタッフのアクセス権があるので、このようにしてください

user = User.objects.get(id=1) 
user.is_staff = True 
user.is_superuser = True 
user.save() 
+0

ありがとう、それは多くの助けになります。 djangoを初めて使う – Jives

+0

これを見てくださいhttps://docs.djangoproject.com/ja/1.10/これはdjangoを参照するのに最適な場所は非常に簡単です。それと遊ぶ時間を過ごす –

関連する問題