简体   繁体   中英

dynamically add js variable value in django template url with appname and namespace

I have multiple apps in project and using appname and namespace for urls. I need to dynamically add js variable value in django template url with app name. If I write without appname like --

var temp =23
var href = "{% url 'report_page' id=0 %}".replace(/0/, temp.toString())

It is giving desired result as--

"{% url 'report_page' location_id=23 %}"

But when I use appname its not working for me eg

var href = "{% url 'appname : report_page' id=0 %}".replace(/0/, temp.toString())

Let me give you the exact code: In django template:

<html>
<a href="{% url 'appname : report_page' id=0 %}">Report</a>
</html>
var href = "{% url 'appname : report_page' id=0 %}".replace(/0/, temp.toString())

In url.py of the appname:

def report_page(request):
    import pdb;pdb.set_trace()
    # location_id = request.GET['id']
    return render(
        request,
        'report.html',
        {'id' : request.user.id, 'id' : ''}
    )

In views:

var temp =$('#check_id').val() <a href="{% url 'appname: report_page' %}?id="+temp;>Report</a>

Note: I'm using django 1.11 and I have also tried below one but getting empty string:

 var temp =$('#check_id').val() <a href="{% url 'appname: report_page' %}?id="+temp;>Report</a> 

When you are using with djagno url such as {% url 'appname : report_page' id=0 %} , when django template will rendering it will convert into the like /appname/report-page/0/ , it's solutions is, first you will to take a tag attributes value then change this. please find below solutions.

var arr = $("a").attr('href').split('/') arr[arr.length-2]=777 # demo value $("a").attr('href',arr.join('/'))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM