He estado tratando de obtener datos que envío usando AJAX con una vista de Django. Tengo esta llamada AJAX
$.ajax({ method: "POST", url: "{% url 'change_publish_status' %}", value: {"company_id": company_id, "published": published}, dataType: 'json', headers: {"X-CSRFToken": '{{ csrf_token }}'} });y me gustaría acceder a company_id y las variables publicadas desde la vista de django. He intentado muchas cosas
self.request.POST.get('company_id') --> devuelve Ningunoself.request.POST.get('company_id', None) --> devuelve Ningunoself.request.body --> devuelve b''Esta es mi vista ahora mismo
@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")Para enviar los datos en la llamada POST , pase los datos en el argumento de data en lugar de value .
$.ajax({ method: "POST", url: "{% url 'change_publish_status' %}", data: {"company_id": company_id, "published": published}, dataType: 'json', headers: {"X-CSRFToken": '{{ csrf_token }}'} });