AJAX вызов к Django View возвращает None к данным
Я пытался получить данные, которые я отправляю с помощью AJAX, с помощью представления Django. У меня есть такой вызов AJAX
$.ajax({
method: "POST",
url: "{% url 'change_publish_status' %}",
value: {"company_id": company_id, "published": published},
dataType: 'json',
headers: {"X-CSRFToken": '{{ csrf_token }}'}
});
и я хотел бы получить доступ к переменным company_id и published из представления django. Я перепробовал много вещей
self.request.POST.get('company_id')--> возвращает Noneself.request.POST.get('company_id', None)--> возвращает Noneself.request.body--> возвращает b''
Это мое мнение сейчас
@method_decorator(login_required, name='dispatch')
class ChangePublishStatus(TemplateView):
def post(self, *args, **kwargs):
company_id = self.request.POST.get('company_id', None)
published_status = self.request.POST.get('published') == "true"
print(company_id)
return JsonResponse({"status": "ok"})
def get(self, *args, **kwargs):
return redirect("list")
Чтобы отправить данные в вызове POST, передайте их в аргументе data, а не value.
$.ajax({
method: "POST",
url: "{% url 'change_publish_status' %}",
data: {"company_id": company_id, "published": published},
dataType: 'json',
headers: {"X-CSRFToken": '{{ csrf_token }}'}
});