Python 错误非空约束失败:使用3个模型自定义表单django all auth(外键)
我正在学习django,在我的一个挑战中,我想在注册表单django all auth中添加3个外键,但我有一个错误:NOT NULL约束失败:advertising_profile.user_id 请你帮我解释一下我失败了什么 我正试图将此信息保存到注册表中Python 错误非空约束失败:使用3个模型自定义表单django all auth(外键),python,django,django-models,django-forms,django-views,Python,Django,Django Models,Django Forms,Django Views,我正在学习django,在我的一个挑战中,我想在注册表单django all auth中添加3个外键,但我有一个错误:NOT NULL约束失败:advertising_profile.user_id 请你帮我解释一下我失败了什么 我正试图将此信息保存到注册表中 ==========views.py================== def register(request): form = CustomSignUpProfileModelForm() if reques
==========views.py==================
def register(request):
form = CustomSignUpProfileModelForm()
if request.method == "POST":
form = CustomSignUpProfileModelForm(data=request.POST)
if form.is_valid():
#user = form['customSignUp'].save(commit=False)
profile = form.save(commit=False)
profile.user = request.user
profile.save()
#user = form.save()
if profile is not None:
do_login(request, user)
return redirect('welcome')
#form.fields['username'].help_text = None
#form.fields['password1'].help_text = None
#form.fields['password2'].help_text = None
return render(request,"account/signup.html",{'form':form})
==========end views.py======================
=========forms.py======================
from django import forms
from django.forms import ModelForm
from betterforms.multiform import MultiModelForm
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth.models import User
from .models import Profile, Region, Commune, Nation
class CustomSignUp(UserCreationForm):
username = forms.EmailField(label="Correo electrónico")
class Meta:
model = User
fields = ["username","password1","password2"]
class CustomSignIn(AuthenticationForm):
username = forms.EmailField(label="Correo Electrónico")
class Meta:
model = User
fields = ["username","password"]
class Profile(forms.ModelForm):
class Meta:
model = Profile
fields = ["name","last_name","mother_last_name","phone","region","commune","nation"]
class Region(forms.ModelForm):
class Meta:
model = Region
fields = ["name"]
class Commune(forms.ModelForm):
class Meta:
model = Commune
fields = ["name"]
class Nation(forms.ModelForm):
class Meta:
model = Nation
fields = ["name"]
class CustomSignUpProfileModelForm(MultiModelForm):
form_classes = {
'customSignUp': CustomSignUp,
'profile':Profile,
}
=============end forms.py =====================
============== models.py =====================
from django.db import models
from django.contrib.auth.models import User
from phone_field import PhoneField
# Create your models here.
class Region(models.Model):
cprovin = models.CharField(max_length=4)
name = models.CharField(max_length=50,verbose_name="Región")
def __str__(self):
return self.name
class Commune(models.Model):
cpoblac = models.CharField(max_length=4)
name = models.CharField(max_length=50, verbose_name="Comuna")
region = models.ForeignKey(Region,on_delete=models.CASCADE, verbose_name="Elija una región",null=False, blank=False)
def __str__(self):
return self.name
class Nation(models.Model):
name = models.CharField(max_length=50, verbose_name="Nacionalidad", null=False, blank=False)
def __str__(self):
return self.name
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,null=False, blank=False)
name = models.CharField(max_length=30, verbose_name="Nombre", null=False, blank=False)
last_name = models.CharField(max_length=30, verbose_name="Apellido Paterno", null=False, blank=False)
mother_last_name = models.CharField(max_length=30, verbose_name="Apellido Materno", null=False, blank=False)
nation = models.ForeignKey(Nation,on_delete=models.CASCADE, verbose_name="Elija su nacionalidad", null=False, blank=False)
region = models.ForeignKey(Region,on_delete=models.CASCADE,verbose_name="Elija una región", null=False, blank=False)
commune = models.ForeignKey(Commune,on_delete=models.CASCADE,verbose_name="Elija una comuna", null=False, blank=False)
phone = PhoneField(null=False, blank=False, unique=True, help_text="Número de contacto")
def __str__(self):
return self.name
============== end models.py =====================
在此行配置文件中。user=request.user但您应该确认您的模型在此行配置文件中应该有user。user=request.user但您应该确认您的模型应该有user,您是在什么时候首先遇到此错误的?我的意思是,在进行迁移或任何其他操作时,特别是在创建与概要文件模型的新关系时,我还删除了数据库和迁移,从头开始,错误会继续@Jai您是在什么时候第一次遇到这个错误的?我的意思是,在进行迁移或任何其他操作时,特别是在创建与概要文件模型的新关系时,我还删除了数据库和迁移,从头开始,错误会继续@贾伊