Встроенный декоратор django 2.13 login_required не работает

я работаю над Django 2.1.2, и я хотел украсить свой вид на основе класса. Я применяю декоратор login_required в пути

path('', login_required(CredentialsList.as_view()), name='credentials-list'),

когда я отправляю запрос в CredentialList, он отвечает нормально, он не перенаправляет меня на экран входа в систему. не упустил ли я что-то из конфигурации

LOGIN_URL='login/'
LOGIN_REDIRECT_URL = 'list/'

person PiotroSan    schedule 20.11.2018    source источник
comment
LOGIN_URL должен быть абсолютным URL-адресом, например. LOGIN_URL='/login/' или имя шаблона URL, например. 'login'. LOGIN_REDIRECT_URL то же самое.   -  person Alasdair    schedule 21.11.2018
comment
Спасибо, я заметил, что запускаю этот проект в другой среде (другой Linux), где все работает нормально, и я заметил, что это должно быть абсолютным. Спасибо, Аласдер.   -  person PiotroSan    schedule 21.11.2018


Ответы (2)


Вместо этого вы можете использовать LoginRequiredMixin или декоратор в своем представлении. Например:

# views.py
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.decorators import login_required

# For a class-based view
class CredentialsList(LoginRequiredMixin, TemplateView):

# For a function-based view
@login_required
def credentials_list(request):

и для вашего URL удалите декоратор:

path('', CredentialsList.as_view(), name='credentials-list'),
person Community    schedule 20.11.2018
comment
Вы правы, но декоратор класса в пути - это самый простой и быстрый способ, теперь я думаю, может быть, ваш способ лучше, кстати, я решил причину (среду) и не решил проблему (я не знаю, почему среда ), но мне, вероятно, придется создать новую среду. Спасибо за ответ - person PiotroSan; 21.11.2018

Я запускаю этот проект на другом Linux (ubuntu 16.04), где, конечно, другая среда, и все работает нормально :|. Я должен проверить дома, что не так, может быть, нужно создать еще один virualenv. Всем спасибо за помощь мне!!!

person PiotroSan    schedule 21.11.2018