Моя страница входа и регистрации не работает, когда я нажимаю на кнопку, и мой конфиг url в порядке

я создаю проект django и постоянно получаю эту ошибку:- django.db.utils.IntegrityError: null value in column «id» of relation «validation» violates not-null constraint ПОДРОБНОСТИ: Failing row contains (null, 7, 839510, 0, 2024-10-29 19:51:34.057435+00, f, null). Я думаю, это как-то связано с моей базой данных, я использую pgadmin

forms.py

from django import forms  
from django.contrib.auth.models import User  
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm  
from django.core.exceptions import ValidationError  
from .models import Validation   

# User Login Form  
class UserLoginForm(AuthenticationForm):  
    username = forms.CharField(max_length=254, required=True)  
    password = forms.CharField(label="Password", strip=False, widget=forms.PasswordInput)  

    class Meta:  
        model = User  
        fields = ['username', 'password']  

# Verification Form  
class VerificationForm(forms.Form):  
    token = forms.CharField(max_length=6, required=True, label="Verification Code")  

    def clean_token(self):  
        token = self.cleaned_data['token']  
        if not token.isdigit() or len(token) != 6:  
            raise ValidationError("Invalid verification code format.")  
        return token  

# User Registration Form  
class UserRegistrationForm(UserCreationForm):  
    first_name = forms.CharField(max_length=30, required=True)  
    last_name = forms.CharField(max_length=30, required=True)  
    email = forms.EmailField(required=True)  

    class Meta:  
        model = User  
        fields = ['username', 'first_name', 'last_name', 'email', 'password1', 'password2']  

    def clean_email(self):  
        email = self.cleaned_data['email'].lower()  
        if User.objects.filter(email=email).exists():  
            raise ValidationError("A user with that email already exists.")  
        return email

таблица проверки ссылки

Вы не должны использовать эту строку в моделях Validation и Link:

id = models.BigAutoField(primary_key=True)

удалите эту строку !

Если вы хотите сохранить строку:

id = models.BigAutoField(primary_key=True)

Вы должны были иметь auto_created = True :

id = models.BigAutoField(primary_key=True, auto_created = True)

В противном случае он равен null, как показано в сообщении об ошибке.

Но на самом деле эта строка не нужна. Django сделает это сам.

Вернуться на верх