@nurzhannogerbek

Как перенаправить неавторизованного пользователя на определенную страницу?

Здравствуйте! Помогите пожалуйста разобраться и направить на путь истенный.

Как перенаправить неавторизованного пользователя на определенную странику?

К примеру неавторизованный пользователь заходит по адресу /admin/ , нужно данного пользователя перенаправить на /admin/login/. В случаи если он авторизован то спокойно переходит по адресу /admin/.

P.S. Была поставлена задача создать свою панель для админки не использую ту, которая есть из коробки в Джанго. Внизу создал кастомную форму для страницы login, которая наследует от AuthenticationForm.

urls.py:
urlpatterns = [
    # Admin Dashboard
    url(r'^admin/$', DashboardView.as_view()),

    # Admin Login
    url(r'^admin/login/$',
        authentication_views.login,
        {
            'template_name': 'administration/login.html',
            'authentication_form': AdminAuthenticationForm
        },
        name='login'),
]


forms.py:
class AdminAuthenticationForm(AuthenticationForm):
    """
        A custom authentication form used in the administration app.
    """
    error_messages = {
        'invalid_login': ("Ошибка! Проверьте ваш Логин или Пароль администратора еще раз."),
    }
    required_css_class = 'required'

    def confirm_login_allowed(self, user):
        if not user.is_active or not user.is_staff:
            raise forms.ValidationError(
                self.error_messages['invalid_login'],
                code='invalid_login',
                params={'username': self.username_field.verbose_name}
            )
  • Вопрос задан
  • 2081 просмотр
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Просто помечаете нужную вьюху декоратором @login_required и либо указываете login_url в параметрах декоратора, либо указываете в настройках параметр LOGIN_URL.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы