< a href="https://github.com/%E5%B0%8F%E7%9A%AE%E6%B5%A9"> Fork me on GitHub

django之自定义标签(路径url反向解码)

django之自定义标签

django之自定义标签

自定义标签创建

  1. 在应用文件夹下创建templatetags文件夹
  2. 在文件夹下创建py脚本,如mytags.py
  3. 在mytags.py写入自定义标签的处理代码
#自定义标签传参后,携带原路径参数或跳转路径的获取数据参数
#自定义标签
from django import template
from django.urls import reverse

register = template.Library()

@register.simple_tag
def resolve_url(request,url_name,cid):
"""

:param request: 请求对象
:param url_name:  url别名
:param cid:    客户id
:return:
&quot;&quot;&quot;
from django.http.request import QueryDict
custom_query_dict = QueryDict(mutable=True)
custom_query_dict[&#39;next&#39;] = request.get_full_path()   #要跳转回的url
next_url = custom_query_dict.urlencode()    #将得到的搜索路径url编码

reverse_url = reverse(url_name,args=(cid,))     #编辑的url    ?next=要跳转的url
full_path = reverse_url + &#39;?&#39; + next_url
return full_path

在前端页面中,数据传参

<a href="{{ resolve_url request "case_edit" foo.id }}"></a>

后端view视图

from django.shortcuts import render,redirect,HttpResponse,
next_url = request.GET.get("next")
return redirect(next_url)

 

posted @ 2020-01-03 14:43  赌徒!  阅读(289)  评论(0编辑  收藏  举报