大家好:)我尝试在我的应用程序中添加一个配置文件用户。目标是在创建帐户的同时创建一个配置文件。但是这个错误来了:
积分错误位于/账户/注册/ 非空约束失败:帐户\u配置文件。用户\u id 我不明白我的代码有什么问题,因为我在youtube上有一个教程,里面有这个代码
这是我的密码:
views.py
from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.forms import UserCreationForm
from django.contrib import messages
from .forms import UserForm, ProfileForm
# Create your views here.
def register(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
profile_form= ProfileForm(request.POST)
if form.is_valid() and profile_form.is_valid():
user = form.save(commit=False)
profile = profile_form.save(commit=False)
profile.user = user
user.save()
profile.save()
return redirect('account:login')
else:
form = UserCreationForm()
profile_form = ProfileForm()
context = {
'form' : form ,
'profile': profile_form,
}
return render(request, 'accounts/register.html', context)
models.py:
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
birthday = models.DateField()
mail = models.EmailField(max_length=254, null = True, blank = True)
def __str__(self):
return self.user.username
forms.py:
from django import forms
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
from django.contrib.auth.models import User
from .models import Profile
class LoginForm(AuthenticationForm):
username= forms.CharField(label='Username', widget=forms.TextInput(attrs={'class':'form-control',
}))
password= forms.CharField(label='Password', widget=forms.PasswordInput(attrs={'class':'form-control',
}))
class UserForm(UserCreationForm):
class Meta :
model = User
fields =('username','password1', 'password2')
class ProfileForm(forms.ModelForm):
birthday= forms.DateField(label='birthday',widget=forms.DateInput(attrs={
'class':'form-control',
'type' :'date',
}))
class Meta :
model = Profile
fields =('birthday', 'mail')
尝试:
在your views.py中,您正在创建一个配置文件对象,并在保存用户对象之前为其指定一个用户
试试这个:
相关问题 更多 >
编程相关推荐