Функция представления Django возвращает код состояния 302 при использовании декоратора @login_required
В моем файле views.py в приложении Django я использую декоратор @login_required
для каждого метода в файле. Когда пользователь входит в систему, все методы работают нормально, кроме одного, метода getFields
. Я не могу понять, что происходит с этим методом. Когда я удаляю декоратор @login_required
, он работает нормально. Почему он не определяет, что пользователь вошел в систему, для этого метода?
Функция просмотра:
@login_required
def getFields(request):
try:
POST = json.loads(request.body)
fields = Field.objects.all()
field_list = []
for field in fields:
field_list.append(field.to_dict())
print(field_list)
return JsonResponse({
'status': 200,
'fields': field_list
})
except(ObjectDoesNotExist):
return JsonResponse({
'status': 404
})
urls.py:
from django.contrib import admin
from django.urls import path,include
from . import views
urlpatterns = [
path('',views.login,name="login"),
path('logout', views.logout,name='logout'),
path('editProfile', views.editProfile,name='EditProfile'),
path('createTable',views.creatTable,name="createTable"),
path("accounts/", include("django.contrib.auth.urls")),
path('signup',views.signup,name="signup"),
path('forgotPassword',views.forgotPassword,name="forgotPassword"),
path('getTable', views.getTable, name="getTable"),
path('modifyrow', views.modifyrow, name="modifyrow"),
path('deleteRow', views.deleteRow, name="deleteRow"),
path('addColumn', views.addColumn, name="addColumn"),
path('deleteColumn', views.deleteColumn, name='deleteColumn'),
path('EditColumn', views.EditColumn, name='EditColumn'),
path('getExperts', views.getExperts, name='getExperts'),
path('sendemail', views.sendemail, name='sendemail'),
path('getFields', views.getFields,name='getFields'),
path('createExpert', views.createExpert,name='createExpert'),
Вызов метода с помощью javascript:
try{
const response = await fetch(`http://127.0.0.1:8000/getFields`,{
method:'GET',
headers:{
'Content-Type': 'application-json',
'X-CSRFToken': Cookies.get('csrftoken'),
},
credentails: 'include'
})