Добрый день, у меня есть следующие мнения:@login_required вызывающие проблемы
class BookList(RequireLoginMixin, generic.ListView):
model = Book
template_name = 'book/list.html'
и
@login_required(login_url='/login/')
def fetch_book_author(request):
context = {"context": Book.objects.all()}
return render(request, 'book/pages/authors.html', context)
class RequireLoginMixin(object):
@classmethod
def as_view(cls, **initkwargs):
view = super(RequireLoginMixin, cls).as_view(**initkwargs)
return login_required(view)
Я пытаюсь запретить доступ ко всем моим страницах, кроме главной страницы. Любая страница, которая Im пытается получить доступ после применения декоратора или подмешать на, дает мне следующее сообщение об ошибке:
^__debug__/
^admin/
^mwf/
The current URL, accounts/login/, didn't match any of these.
Вот конфигурация моей URL:
app_name = 'bookApp'
urlpatterns = [
url(r'^$', HomeView.as_view(), name='home'),
url(r'^about/$', AboutView.as_view(), name='about'),
url(r'^welcome/$', WelcomeView.as_view(), name='welcome'),
url(r'^fetch-books/$', fetch_book_author, name='fetch'),
url(r'^books/$', BookList.as_view(), name='books'),
url(r'^login/$', 'django.contrib.auth.views.login', name='login'),
url(r'^logout/$', 'django.contrib.auth.views.logout', kwargs={'next_page': '/mwf/'}),
url(r'^signup/$', UserRegistrationView.as_view(), name='signup'),
url('^', include('django.contrib.auth.urls')),
]
и в моих настройках, у меня есть:
LOGIN_REDIRECT_URL = 'login/'
Не знаю, что здесь не так. действительно будет признателен за любую помощь
Похоже, что URL-адрес для входа, который вы пытаетесь использовать, - это 'accounts/login /', но в URL-адресах нет соответствующего URL. Попробуйте изменить свой шаблон входа в 'r^'accounts/login/$'' – dkhaupt
И используйте 'LOGIN_REDIRECT_URL = reverse_lazy ('login')', чтобы избежать жестко закодированных URL-адресов. – Risadinha
Вы импортировали django.contrib.auth.views?, Также попробуйте написать 'login' вместо 'login /' – jsanchezs