从django

时间:2016-09-22 23:09:00

标签: django django-templates django-urls

假设我有两个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>

但这似乎不起作用

1 个答案:

答案 0 :(得分:2)

由于您的应用引用了不同的urls.py文件,因此为了使用命名网址,您需要使用自己的命名空间访问每个文件。

Check out the example in the docs here。有urls.py个文件使用include('polls.urls')。然后,在实际的民意调查应用中,有几个命名网址indexdetail。由于他们在应用内部,因此可以使用他们的命名空间 - {% url 'polls:index' %}{% urls 'polls:detail' %}分别访问这些网址。

如果您在Django 1.9之前工作,则必须在namespace语句之后专门提供include参数。从1.9开始,当您从应用程序include发送urls.py文件时,Django会自动使用该命名空间的应用名称。