Есть ли другой способ использовать параметр django @login_required?
эта мелочь не дает мне покоя со вчерашнего дня, я пытался добавить параметр @login_required к моей функции create в django, код работает очень хорошо без добавления параметра @login_required, но при добавлении @login_required выдает "страница не найдена". вот мой код.
urls.py
app_name = 'accounts'
urlpatterns = [
path('signup', views.signup_view, name='signupp') ,
path('login', views.login_view, name='loginn'),
path('logout', views.logout_view, name='logoutt')
]
просмотров
from django.contrib.auth.decorators import login_required
@login_required(login_url='accounts/loginn/')
def jayapp_create(request):
return render(request, 'jayapp/jayapp_create.html' )
when i go to http://127.0.0.1:8000/jayapp/create/
it shows
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/jayapp/accounts/loginn/?next=/jayapp/create
Using the URLconf defined in JayDjango.urls, Django tried these URL patterns, in this order:
admin/ счета/ jayapp/ [name='list-in'] jayapp/ log jayapp/ create [name='create'] jayapp/ / [name='detail'] backen/ ^media/(?P.*)$ Текущий путь, jayapp/accounts/loginn/, не соответствует ни одному из этих путей.
Вы видите эту ошибку, потому что в вашем файле настроек Django установлено DEBUG = True. Измените на False, и Django отобразит стандартную страницу 404.
Для того чтобы использовать декоратор @login_required, вам необходима функция входа и выхода.
В качестве альтернативы @login_required можно использовать условие if: if request.user.is_authenticated:.