Проект Django застрял на странице входа в систему

Я очень новичок в Django и пытаюсь создать сайт бронирования. Я хочу, чтобы после входа в систему он перенаправлял меня на страницу booking.html, но вместо этого у меня есть эта страница входа, которая постоянно возвращает меня на страницу входа снова и снова

Это мой login.html :

это мой urls.py :


    path('login/', LoginView.as_view(next_page='booking'), name='login'),
    

вот мой views.py :

вот мой settings.py :


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

LOGIN_REDIRECT_URL = 'booking/'

LOGIN_URL = 'login/'




и, наконец, вот мой models.py :

from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, Group


class CustomUserManager(BaseUserManager):
    def create_user(self, email, username, password=None):
        if not email:
            raise ValueError('The Email field must be set')
        if not username:
            raise ValueError('The Username field must be set')
        email = self.normalize_email(email)
        user = self.model(email=email, username=username)
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, username, password=None):
        user = self.create_user(email=email, username=username, password=password)
        user.is_staff = True
        user.is_superuser = True
        user.save(using=self._db)
        return user


class CustomUser(AbstractBaseUser):
    nama = models.CharField(max_length=50)
    alamat = models.TextField()
    nohp = models.CharField(max_length=15)
    email = models.EmailField(max_length=50, unique=True)
    username = models.CharField(max_length=50, unique=True)
    password = models.CharField(max_length=50)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    is_superuser = models.BooleanField(default=False)
    groups = models.ManyToManyField(Group, blank=True, related_name='custom_users')

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['username']

    objects = CustomUserManager()

    def __str__(self):
        return self.email
    



class tbLayanan(models.Model):
    namalayanan = models.CharField(max_length=50)
    harga = models.IntegerField()

    def __str__(self):
        return self.namalayanan


class tbStatus(models.Model):
    namastatus = models.CharField(max_length=50)

    def __str__(self):
        return self.namastatus


class tbBooking(models.Model):
    kode = models.CharField(max_length=9, unique=True)
    nama = models.CharField(max_length=50, unique=True)
    namalayanan = models.ForeignKey(tbLayanan, on_delete=models.CASCADE, related_name='namalayanan_bookings')
    desk = models.TextField(blank=True, null=True)
    tanggal = models.DateTimeField(auto_now_add=True, null=True)
    waktu = models.TimeField()
    harga = models.ForeignKey(tbLayanan, on_delete=models.CASCADE, related_name='harga_bookings')
    namastatus = models.ForeignKey(tbStatus, on_delete=models.CASCADE, null=True)

    def __str__(self):
        return self.kode

Помогите, пожалуйста, я застрял и не знаю, что делать

Я хочу, чтобы после входа в систему он переходил на страницу booking.html

Вам нужно написать путь входа в систему следующим образом

path('login/', LoginView.as_view(), name='login'),

Также удалите / .

LOGIN_REDIRECT_URL = 'booking'

Добавьте эту функцию в ваш файл views.py

from django.contrib.auth.views import LoginView 

class AdminLogin(LoginView):
    template_name = "login.html"

после этого используйте форму django в html логине не используйте html форму

<form method="POST">
    {{form.as_p}}
    <button type="submit" ></button>
</form>
Вернуться на верх