你如何在 Django 中处理来自 HTMX 的 PATCH 请求?
How do you handle a PATCH request from HTMX in Django?
我想向我的应用程序发送 PATCH 请求,但我不确定如何在 Django 中使用该请求。我目前收到以下错误。
AttributeError: 'WSGIRequest' object has no attribute 'PATCH'
HTMX 文件中的输入字段如下所示(我还确保发送了 CSRF 令牌):
<input
name="myfield"
hx-patch="{% url 'my_update' myobj.id %}"
hx-swap="none" />
这是 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 正在接收请求,但不确定如何处理 request.PATCH。我可以在 Django 文档中看到有 HttpRequest.GET 和 HttpRequest.POST 但没有 HttpRequest.PATCH https://docs.djangoproject.com/en/3.2/ref/request-response/#httprequest-objects。处理 PATCH 的最佳方法是什么?
从 the docs 开始,您的表单信息将位于 request.POST
属性中。您可以使用 if request.method == "PATCH"
.
检查 PATCH
s
您需要手动解析请求正文,可以通过 request.body
访问并使用 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))
我想向我的应用程序发送 PATCH 请求,但我不确定如何在 Django 中使用该请求。我目前收到以下错误。
AttributeError: 'WSGIRequest' object has no attribute 'PATCH'
HTMX 文件中的输入字段如下所示(我还确保发送了 CSRF 令牌):
<input
name="myfield"
hx-patch="{% url 'my_update' myobj.id %}"
hx-swap="none" />
这是 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 正在接收请求,但不确定如何处理 request.PATCH。我可以在 Django 文档中看到有 HttpRequest.GET 和 HttpRequest.POST 但没有 HttpRequest.PATCH https://docs.djangoproject.com/en/3.2/ref/request-response/#httprequest-objects。处理 PATCH 的最佳方法是什么?
从 the docs 开始,您的表单信息将位于 request.POST
属性中。您可以使用 if request.method == "PATCH"
.
PATCH
s
您需要手动解析请求正文,可以通过 request.body
访问并使用 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))