2017-12-10 38 views
1

AttributeError at/accounts/regist_save/'User'オブジェクトに属性 'user'エラーはありません。 regist.html models.pyAttributeError/accounts/regist_save/'User'オブジェクトに属性 'user'がありません

from django.db import models 
from django.contrib.auth.models import User 

    class NewUser(models.Model): 
     user = models.OneToOneField(User, on_delete=models.CASCADE) 
     birthday = models.CharField(max_length=100,null=True, blank=True, default=None) 
     sex = models.CharField(max_length=100,null=True, blank=True, default=None) 

Iで

<div class="form-group-lg"> 

    <label for="id_username">Username</label> 

    {{ regist_form.username }} 

    </div> 

    <div class="form-group-lg"> 

    <label for="id_email">Email</label> 

    {{ regist_form.email }} 
    </div> 

    <div class="form-group-lg"> 

    <label for="id_password">Password</label> 

    {{ regist_form.password1 }} 

    </div> 


    <div class="form-group-lg"> 
    <label for="id_password">Password2</label> 

    {{ regist_form.password2 }} 
    <p class="help-block">{{ regist_form.password2.help_text }}</p> 

    </div> 



    {% load static %} 

    <div class="form-group-lg"> 
    <label for="sex">SEX</label> 
    <select id="sex" class="form-control sex" name="sex"> 
     <option value="">--</option> 
     <option value="male">male</option> 
     <option value="female">female</option> 
    </select> 
    </div> 


    <script src="{% static 'accounts/register.js' %}"></script> 


     <button type="submit" class="btn-lg regist">REGIST</button> 

     <input name="next" type="hidden" /> 

    {% csrf_token %} 

</form> 

でviews.py

def regist(request): 
    regist_form = RegisterForm(request.POST or None) 
    profile_form = ProfileForm(request.POST or None) 
    context = { 
     'regist_form': regist_form, 
     'profile_form': profile_form, 
    } 
    return render(request, 'registration/regist.html', context) 

@require_POST 
def regist_save(request): 

    regist_form = RegisterForm(request.POST or None) 
    profile_form = ProfileForm(request.POST or None) 

    if request.method == "POST" and regist_form.is_valid() and profile_form.is_valid(): 
       regist = regist_form.save(commit=False) 
       regist.is_staff = True 
       regist.save() 

       profile = profile_form.save(commit=False) 
       profile.user = regist.user 

    return render(request, 'registration/detail.html') 

本当に私はprofile.user = regist.userがuser.Iがprofile.user = request.userを書き込もう得でき思うので、このエラーが発生した理由を理解することはできませんが、IntegrityError happens.Howが、私は、ユーザーを得ることができますか?なぜ私が書くのは間違っているのでしょうか?このコードを使用することによってそれを得ることができませんユーザーモデルの列名?これを修正するにはどうすればよいですか?

答えて

0

私はregist自体がユーザーオブジェクトだと思います。

はただ試してみてください。

profile.user = regist 
関連する問題