【问题标题】:Django dynamic URL in template模板中的 Django 动态 URL
【发布时间】:2020-04-11 17:30:56
【问题描述】:

如何在动态 url 中使用模板变量。我想要这样的东西:

href="{% url '{{ questionnaire.url }}' %}"

问题是我得到了这个错误:

Reverse for '{{ questionnaire.url }}' not found. '{{ questionnaire.url }}' is not a valid view function or pattern name.

更新:

问题出在我的 javascript 中:

<script>
let el = `<a href="{% url '${questionnaire.url}' %}"></a>
</script>

我将此代码插入我的模板动态中,Django 模板无法正确解析 url。

【问题讨论】:

    标签: django django-templates django-urls


    【解决方案1】:

    你可以使用with模板标签

    {% with my_url=questionnaire.url %}
       <a href="{% url my_url %}">Go</a>
    {% endwith %}
    

    【讨论】:

    • 那么错误就在这里:href="{% url {{ my_url }} %}" 。无法解析剩余部分:来自“{{”的“{{”。
    • 删除 {{ }} 只保留my_url
    • 我不断收到错误消息。未找到“my_url”的反向。 'my_url' 不是有效的视图函数或模式名称。
    • 只打印你在my_url得到的内容
    • 它不会打印出任何东西。
    【解决方案2】:

    查看url 文档。你可以传递一个视图名称,Django 会解析它:

    view.py

    path('some-url/', app_views.client, name='app-views-client')
    

    index.html

    <a href="{% url 'app-views-client' %}" >Go</a>
    

    【讨论】:

    • 我知道,但我从这个 {{ questions.url }} 获得视图名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2019-02-03
    • 2016-08-23
    • 2010-11-14
    • 1970-01-01
    • 2016-05-13
    相关资源
    最近更新 更多