Django IntegrityError (1048, "Column 'newuser_id' cannot be null")
Я новичок в Django. В основном, я пытаюсь создать поле подтверждения пароля, но когда я пытаюсь отправить форму, я получаю эту ошибку: (1048, "Column 'newuser_id' cannot be null")
models.py
forms.py
from django import forms
from django.forms import ModelForm
from .models import NewUser, RepeatPW
class Person(ModelForm):
email = forms.EmailField()
username = forms.CharField()
first_name = forms.CharField()
middle_name = forms.CharField()
last_name = forms.CharField()
# added manually
#day = forms.IntegerField()
#month = forms.IntegerField()
#year = forms.IntegerField()
gender = forms.ChoiceField
country = forms.ChoiceField
class Meta:
model = NewUser
fields = ["username", "email", "first_name", "middle_name", "last_name",
"gender", "country", "password"]
class RepeatPassword(ModelForm):
class Meta:
model = RepeatPW
fields = ["password"]
и views.py
from django.contrib.auth.hashers import check_password
from django.shortcuts import render, redirect
from django.contrib import messages
from .forms import Person, RepeatPassword
from django.contrib.auth import authenticate, login, logout
from .models import NewUser
# Create your views here.
def register(request):
if request.user.is_authenticated:
return redirect('profiles')
else:
if request.method == 'POST':
first_form = Person(request.POST)
second_form = RepeatPassword(request.POST)
if first_form.is_valid() and second_form.is_valid():
first_form.save()
second_form.save()
username = first_form.cleaned_data.get("username")
password = first_form.cleaned_data.get("password")
confirm_password = second_form.cleaned_data.get("password")
match_check = check_password(password, confirm_password)
if match_check == True:
messages.success(request, f"Account created for {username}!")
return redirect("login_user")
else:
raise ValueError("Password don't match!")
else:
first_form = Person()
second_form = RepeatPassword()
return render(request, "accounts/register.html", {"first_form": first_form, "second_form": second_form})
Бессмысленно пытаться передать значения из first_form, так как у первой формы нет id. Я пытался обратиться к базе данных и получить оттуда id после сохранения первой_формы, но потерпел неудачу. Если у вас есть идеи, как я могу получить id NewUser в RepeatPW, пожалуйста, дайте мне знать. Или если у вас есть идеи, как я могу проверить пароль без всех этих хлопот, пожалуйста, дайте мне знать. Большое спасибо!