在 Django 模板 URL 中动态添加带有 appname 和命名空间的 js 变量值



我在项目中有多个应用程序,并使用 appname 和命名空间 网址。我需要在 django 模板中动态添加 js 变量值 包含应用名称的网址。如果我写没有像这样的appname——

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

它给出的结果是——

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

但是当我使用 appname 时,它对我不起作用,例如

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

让我给你确切的代码:在 django 模板中:

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

在应用名称 url.py:

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)

在视图中:

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

注意:我使用的是 django 1.11,我也尝试过低于一个但得到空字符串:

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

当你使用djagno url如{% url 'appname : report_page' id=0 %}时,当django模板渲染时它会转换成类似的/appname/report-page/0/,它的解决方案是,首先,您将获取a标签属性值,然后更改此值。请在下面找到解决方案。

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

最新更新