Me gustaría enviar una solicitud PATCH a mi aplicación, pero no estoy seguro de cómo consumir la solicitud en Django. Actualmente recibo el siguiente error.
AttributeError: 'WSGIRequest' object has no attribute 'PATCH'El campo de entrada en el archivo HTMX se ve así (también me aseguré de enviar el token CSRF):
<input name="myfield" hx-patch="{% url 'my_update' myobj.id %}" hx-swap="none" />Esta es la vista de Django
class MyHtmxView(View): def patch(self, request, *args, **kwargs): form = MyForm(request.PATCH) if form.is_valid(): form.save() # return an okay status? 200? else: return HttpResponse(self.form_invalid(form))Django está recibiendo la solicitud, pero no está seguro de qué hacer con request.PATCH. Puedo ver en los documentos de Django que hay HttpRequest.GET y HttpRequest.POST pero no HttpRequest.PATCH https://docs.djangoproject.com/en/3.2/ref/request-response/#httprequest-objects . ¿Cuál es la mejor manera de manejar el PARCHE?
Debe analizar el cuerpo de la solicitud manualmente, al que se puede acceder a través de request.body y analizarlo usando QueryDict(request.body)
from django.http.request import QueryDict class MyHtmxView(View): def patch(self, request, *args, **kwargs): # parse request body mannualy data = QueryDict(request.body) form = MyForm(data) if form.is_valid(): form.save() # return an okay status? 200? else: return HttpResponse(self.form_invalid(form))De los documentos , la información de su formulario estará en el atributo request.POST . Puede buscar PATCH s con if request.method == "PATCH" .