提供一个解决方案,以使用不同于html表单内部的get或post方法
django-http-method的Python项目详细描述
django http方法
在django模板中提供使用不同于获取或发布html表单的方法的解决方案。仅适用于基于类的视图。
安装
源代码:
python setup.py install
来自PIP:
pip install django-http-method
用法
在设置中添加{em1}$django_http_method。已安装的应用程序
INSTALLED_APPS=([...],django_http_method,[...],)< H> >将混合蛋白加入CBV
fromdjango.views.genericimportViewfromdjango_http_methodimportHttpMethodMixinclassTestView(HttpMethodMixin,View):defget(self,request):passdefdelete(self,request):passdefput(self,request):pass[...]
在您的模板中,加载http_method并在表单中使用{% http_[method] %}
:
{% load http_method %} <formaction="/"method="post"> {% csrf_token %} {% http_put %} [...] <buttontype="submit">Send a PUT request</button></form><formaction="/"method="post"> {% csrf_token %} {% http_patch %} [...] <buttontype="submit">Send a PATCH request</button></form>
现在将调用视图的相应方法。例如,如果使用了{% http_put %}
,那么将调用TestView.put()
,并且任何请求参数都将位于request.PUT
。
更改日志
1.0.2
- 在设置要求中添加了
pyaml
。
1.0.1
- 现在使用
yaml.safe_load()
而不是yaml.load()
- 在测试矩阵中添加了Python3.7和Django 2.1
1.0.0
- python3.4+和django1.8、1.10、1.11和2.0+的初始版本
0.4.0
- 现在将在body中搜索put和patch方法的参数
- 如果未找到'u method'参数,则方法将默认为request.method
0.3.2
- 在TemplateTags中的HTML输入末尾添加了结束斜杠“/”
0.3.0
- 从请求参数中删除“u method”