Проект 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>