LoginRequiredMixin не работает корректно с URL-адресом входа в систему
Я работаю над проектом Django, в котором я реализовал ListView для отображения списка элементов оформления заказа (ListCheckoutView). Я хочу потребовать аутентификацию для доступа к этому представлению, но в настоящее время оно доступно даже без входа в систему. Я пробовал использовать LoginRequiredMixin, но, похоже, он работает не так, как ожидалось. В checkout.html все работает правильно
from django.urls import path
from .views import BooksListView, BooksDetailView, BookCheckoutView, OrderComplete, SearchResultsListView, ListCheckoutView
urlpatterns = [
path('', BooksListView.as_view(), name='list'),
path('books/', ListCheckoutView.as_view(), name='list2'),
path('<int:pk>/', BooksDetailView.as_view(), name='detail'),
path('<int:pk>/checkout/', BookCheckoutView.as_view(), name='checkout'),
path('complete/', OrderComplete, name='complete'),
path('search/', SearchResultsListView.as_view(), name='search_results'),
]
from django.views.generic import ListView
from django.contrib.auth.mixins import LoginRequiredMixin
from .models import Book, Order
class ListCheckoutView(LoginRequiredMixin, ListView):
model = Book
template_name = 'base.html'
login_url = 'login'
class BookCheckoutView(LoginRequiredMixin, DetailView):
model = Book
template_name = 'checkout.html'
login_url = 'login'
from django.contrib.auth.decorators import login_required
@login_required
class ListCheckoutView(ListView):
model = Book
template_name = 'base.html'
login_url = 'login'
Вы можете использовать этот декоратор @login_required после его импорта