Django LoginRequiredMixin не работает так, как задумано
Миксин LoginRequiredMixin не работает как положено для представления на основе класса ниже, я смог получить доступ к веб-странице независимо от статуса входа, но он должен был перенаправлять неавторизованных пользователей на страницу входа. Где я ошибся?
from django.shortcuts import render, redirect
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import FormView
from .forms import UpdatePortfolio
# Create your views here.
class UpdatePortfolioView(LoginRequiredMixin, FormView):
login_url = 'users:login'
redirect_field_name = 'mainpage:update'
form = UpdatePortfolio
template_name = 'mainpage/updateportfolio.html'
def get_object(self):
# return self.request.user.id
return self.request.user.pk
def get(self, request, *args, **kwargs):
form = self.form_class
return render(request, self.template_name, {'form': form})
Я думаю, что проблема в том, что вы переопределили метод Get... Потому что функциональность перенаправления пользователей будет добавлена в функцию get, а вы переопределили ее.
удалите его ... и вы должны знать, что весь код в функции уже будет сделан FormView Вам не нужно писать его.
Прочитайте это Docs
Это ваша redirect_field_name ценность.
redirect_field_name = 'mainpage:update'
По умолчанию:
redirect_field_name = 'next'