在django模板中覆盖django当前应用程序

时间:2017-04-06 22:30:04

标签: python django

我正在尝试使用Django 1.11中的模板覆盖current_app:

search_form.html由views.search填充:

<html>
    <head>
        <title>Search</title>
    </head>
    <body>
        ...
        <p> {% url 'book:index' %} </p>
        <p> {% url 'book2:index' %} </p>
        {% with current_app as "book2" %}
            <p> {% url 'book:index' %} </p>
        {% endwith %}
    </body>
</html>

这是我的urls.py文件:

urlpatterns = [
    ...
    url(r'^search/', include("books.urls", namespace='book', app_name='book')),
    url(r'^search2/', include("books.urls", namespace='book2', app_name='book')),
    ...
]

books'urls.py:

urlpatterns = [
    url(r'^$', views.search, name="index")
]

输出结果为:

/search/

/search2/

/search/

我应该得到以下内容:

/search/

/search2/

/search2/

此解决方案基于此answer

我认为Django可能会发生一些变化,所以这个解决方案不再适用了。

视图中的

reverse(..., current_app = "books2")仍然有效并显示:“/ search2 /”虽然。

感谢您的时间。

0 个答案:

没有答案