Reputation: 1307
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 e.g
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:
appname = 'appname'
urlpatterns = [
url(r'^report-page$', views.report_page, name='report_page'),
url(r'^report-page/(?P<id>[0-9]+)$', views.report_page, name='report_page'),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
In views:
def report_page(request):
import pdb;pdb.set_trace()
# location_id = request.GET['id']
return render(
request,
'report.html',
{'id' : request.user.id, 'id' : ''}
)
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>
Upvotes: 0
Views: 334
Reputation: 533
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('/'))
Upvotes: 1