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') --> возвращает None
  • self.request.POST.get('company_id', None) --> возвращает None
  • self.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 }}'}
});
Вернуться на верх