假设我有两个Apps AppA和AppB
|_AppB
| |_urls.py # url(r'^create/', views.user_profile, name="name_user_profile"),
|
|_AppA
|_urls.py
|_templates
|_file.html
现在在file.html我有类似的东西
{% block content %}
Success !!!
goto <a href={% url `name_user_profile` % }> Manage Profile </a>
{% endblock %}
但是name_user_profile无法识别?我有什么需要做才能让它得到认可吗?
更新
这是我到目前为止所做的事情
在我的主应用程序urls.py(带有settings.py的应用程序)中。我添加了以下
url(r'^profile/', include("UserProfile.urls" , namespace="UserProfile" , app_name="UserProfile")),
现在,在我的UserProfile应用程序中,视图位于此处
urlpatterns = [
url(r'^$', views.user_profile, name="name_user_profile"),
]
,需要调用该视图的模板位于第3个应用程序中 称为具有此
的帐户 goto <a href={% url 'UserProfile:name_user_profile' % }> Manage Profile </a>
但这似乎不起作用
答案 0 :(得分:2)
由于您的应用引用了不同的urls.py
文件,因此为了使用命名网址,您需要使用自己的命名空间访问每个文件。
Check out the example in the docs here。有urls.py
个文件使用include('polls.urls')
。然后,在实际的民意调查应用中,有几个命名网址index
和detail
。由于他们在应用内部,因此可以使用他们的命名空间 - {% url 'polls:index' %}
和{% urls 'polls:detail' %}
分别访问这些网址。
如果您在Django 1.9之前工作,则必须在namespace
语句之后专门提供include
参数。从1.9开始,当您从应用程序include
发送urls.py文件时,Django会自动使用该命名空间的应用名称。