Как нам настроить 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"),