(NOT NULL constraint failed:A_id)
Я создаю миграции и запускаю migrate. Затем я отправляю форму для регистрации, но получаю ошибку NOT NULL constraint failed для A_id. Ниже приведены мои модели:
models.py
class A(models.Model):
u = models.OneToOneField(User, on_delete=models.CASCADE)
num = models.IntegerField()
class B(models.Model):
x = models.ForeignKey(u, on_delete=models.CASCADE)
y = models.CharField(max_length = charLen100)
forms.py
class AForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput(), required=True),
first_name = forms.CharField(max_length=charLen100, widget = forms.TextInput(attrs=
{'placeholder': 'First Name'}))
last_name = forms.CharField(max_length=charLen100, widget=forms.TextInput(attrs=
{'placeholder': 'Last Name'}))
num_items = forms.CharField(label="How many items do you own?",
widget=forms.Select(choices=ITEM_NUMBER_CHOICES))
class Meta:
model = A
fields = ('username', 'email', 'password','first_name', 'last_name')
class BForm(forms.ModelForm):
name = forms.CharField(widget=forms.TextInput(attrs={'placeholder':name'}))
class Meta:
model = B
fields = ('name')
views.py
def register(request):
registered = False
if request.method == 'POST':
user_form = AForm(request.POST)
profile_form = BForm(request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
profile = profile_form.save(commit=False)
profile.user = user
if 'picture' in request.FILES:
profile.picture = request.FILES['picture']
profile.save()
registered = True
else:
print(user_form.errors, profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileForm()
context_dict = {}
context_dict['user_form'] = user_form
context_dict['profile_form'] = profile_form
context_dict['registered'] = registered
return render(request, ..., context=context_dict)
Итак, я делаю следующее: у меня есть две таблицы в базе данных A и B, и у A может быть много B, то есть B тогда держит A как внешний ключ. Затем в форме я спрашиваю, сколько всего товаров, и связываю таблицы вместе