Python 如何发送值​;在django中将模板脚本中的变量添加到url?

Python 如何发送值​;在django中将模板脚本中的变量添加到url?,python,django,jsp,Python,Django,Jsp,在django中,我希望通过将任何变量的值放入模板的标记值来处理{%url%} pp_001.html <script> $('#dataTables-wkgrid tbody').on( 'click', 'tr', function () { var data = table.row( this ).data(); if ( $(this).hasClass('selected') ) { $(this).removeClass('selected'

在django中,我希望通过将任何变量的值放入模板的标记值来处理{%url%}

pp_001.html

<script>
$('#dataTables-wkgrid tbody').on( 'click', 'tr', function () {
    var data = table.row( this ).data();
    if ( $(this).hasClass('selected') ) {
       $(this).removeClass('selected');
    }
    else {
       table.$('tr.selected').removeClass('selected');
       $(this).addClass('selected');
       $.ajax({
       type: "GET",
       url: "{% url 'pp_02_open' %}",
       data : {
           "cPp_no" : data.pp_no
       },
       dataType: "json",
       cache: false,
       success: function(result){
       console.log(result) ;
       var aTag = "" ;
       $.each(result.filelist,function(index){
       cDocName  = result.filelist[index].doc_name ;                                 
       cFilename = result.filelist[index].file_name ;
       cid  = result.filelist[index].id  ;
       cpp_no = result.filelist[index].pp_no ;
       aTag += '<a href="{% url "pp_02_download" id=cid %}" class="list-group-item">'
            +'<i name="iText" class="fa fa-file-powerpoint-o fa-fw"></i>'+result.filelist[index].doc_name
            +'<i name="file_downloads" class="pull-right glyphicon glyphicon-cloud-download style="padding-left:10px">다운로드</i>'                      
            +'</span>'
            +'</a>'

</script>

$(#dataTables wkgrid tbody')。在('click','tr',function(){
var data=table.row(this.data();
if($(this).hasClass('selected')){
$(this.removeClass('selected');
}
否则{
表.$('tr.selected')。removeClass('selected');
$(this.addClass('selected');
$.ajax({
键入:“获取”,
url:“{%url'pp_02_open%}”,
数据:{
“cPp_编号”:data.pp_编号
},
数据类型:“json”,
cache:false,
成功:功能(结果){
控制台日志(结果);
var aTag=“”;
$.each(结果.文件列表,函数(索引){
cDocName=result.filelist[index].doc\u name;
cFilename=result.filelist[index]。文件名;
cid=result.filelist[index].id;
cpp\u no=result.filelist[index].pp\u no;
aTag+=''
url.py

    path(r'^PP/download/<int:id>/$' , views_pp.download , name="pp_02_download"),

path(r'^PP/download/$,views\u PP.download,name=“PP\u 02\u download”),
错误

找不到具有关键字参数“{id:”}”的“pp\u 02\u download”的反转。尝试了1种模式:[crms/\^pp\/download\/(?p[0-9]+)\/\$]

换句话说,当jsp脚本变量的值为 {%url“pp_02_download id=cid%},我想知道如何传递cid的值


如果以这种方式随机传递“10”而不是cid,它将正常执行。

开发尚未完成。首先,它在参数中获取id值,检索数据,然后尝试下载文件

当前源配置为可以通过随意指定特定文件来检查下载是否正常

views.py

def download(request,id):
    # filename = 'files/test.py'
    filename = 'files/테스트.pptx'
    file_path = os.path.join(settings.MEDIA_ROOT, filename)
    # file_path = reduce(os.path.join, (settings.MEDIA_ROOT, filename))
    logger.info('file_path : %s' , file_path )
    if os.path.exists(file_path) and os.path.isfile(file_path):
        with open(file_path, 'rb') as fp:
            response = HttpResponse(fp.read())
        content_type, encoding = mimetypes.guess_type(filename)
        if content_type is None:
            content_type = 'application/octet-stream'
        # content_type = ""
        response['Content-Type'] = content_type
        response['Content-Length'] = str(os.stat(file_path).st_size)
        logger.info('content_type : %s' , content_type )

    # encoding = 'euc-kr'
    logger.info("encoding : %s" , encoding )
    if encoding is not None:
        response['Content-Encoding'] = encoding
    else:
        response['Content-Encoding'] = 'euc-kr'

    if u'WebKit'in request.META.get('HTTP_USER_AGENT', u'Webkit'):
        filename = os.path.basename(filename)
        filename_header = 'filename=%s' % os.path.basename(filename)
    elif u'MSIE' in request.META.get('HTTP_USER_AGENT', u'MSIE'):
        filename_header = ''
        filename_header = 'filename=%s' % os.path.basename(filename)
    else:
        filename_header = 'filename=%s' % os.path.basename(filename)

    filename_header = filename_header.encode('cp949')   # utf -> euc 로 변환

    response['Content-Disposition'] = filename_header
    logger.info('filename-header : %s ' , filename_header )
    logger.info('[Content-Disposition] : %s' , response['Content-Disposition'])

    return response
path(r'PP/download/',views\u PP.download,name=“PP\u 02\u download”),
对URL.py的更改将不起作用

NoReverseMatch at/crms/PP/
“pp\u 02\u download”与关键字参数“{id”:“}”相反。尝试了1种模式:[crms/pp\/download\/(?P[0-9]+)\/$”]

请共享您的
视图\u pp.download
函数,我认为这是您需要进行更改的地方。由于您使用的是django2,URL.py可以是:
路径('pp/download/',views\u pp.download,name=”pp_02_download“,
path('pp/download/',views_pp.download,name=“pp_02_download”),url.py에 대한 변경은 작동하지 않습니다.请停止将更新发布为您问题的答案。删除这三个答案,并用新信息编辑您的问题。虽然回答您自己的问题是可以接受的,但答案实际上必须是答案,而不是更新。
path(r'PP/download/<int:id>/' , views_pp.download , name="pp_02_download"),