Как нам настроить LoginRequiredMixin? Я получаю следующую ошибку

Настройки:

    LOGIN_URL = 'login_view'

Просмотров:

class MyView(LoginRequiredMixin,View):
    template_name = "login.html"
    login_url = 'login.html'
    redirect_field_name = 'redirect_to'
login_view = MyView.as_view()

Url:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('blogApp.urls')),
    path("login_view/",view=MyView.as_view(template_name = "storefront/login.html"), name="login_view"),
]

Шаблон находится в разделе ./templates/storefront/login.html

Я получаю Страница не найдена (404)

здесь вы пишете имя_шаблона два раза (первый раз в представлении и второй раз в url) если ваш шаблон находится в следующей структуре каталогов

templates/storefront/login.html

вам нужно только описать имя_шаблона в файле view, а также проверить, зарегистрировали ли вы папку шаблона в файле settings.py. вы зарегистрировали папку шаблона в файле settings.py.

Вы не создали функцию Get или Post в представлении класса

views.py

class MyView(LoginRequiredMixin,View):
    template_name = "template_name.html"
    login_url = lazy_reverse('login_view')
    redirect_field_name = 'redirect_to'
    def get(self, request):
        # do some stuff
    def post(self, request):
        # do some stuff

в Настройках : Вы должны поместить фактический URL или пользователя lazy_reverse(YOUR_URL_NAME)

LOGIN_URL = lazy_reverse('login_view')

это представление будет работать если пользователь вошел в систему иначе перенаправит пользователя на login_view

в урлах: Вы пишете имя шаблона в классе, чтобы не писать его снова

path("login_view/",view=MyView.as_view(template_name = "storefront/login.html"), name="login_view"),
Вернуться на верх