(逆経路デコードURL)カスタムラベルジャンゴ

django之自定义标签

カスタムラベルのジャンゴ

カスタムラベルを作成します

  1. Templatetagsは、アプリケーションフォルダにフォルダを作成します
  2. このようmytags.pyとして、フォルダ内の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:
    """
    from django.http.request import QueryDict
    custom_query_dict = QueryDict(mutable=True)
    custom_query_dict['next'] = 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 + '?' + next_url
    return full_path

フロントページでは、データ転送パラメータ

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

バックエンドビュービュー

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

 

おすすめ

転載: www.cnblogs.com/g15009428458/p/12144847.html