2016-09-22 1 views
-1

Предположим, что я два приложения 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 косяк быть признаны? Есть ли что-нибудь, что я должен сделать, чтобы узнать это?

Update:

Это то, что я сделал до сих пор

В моем главном приложении 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

Ваш синтаксис кажется неправильным. Попробуйте: '' – Andreas

+0

спасибо за исправление, я исправил его, но он все еще не отображается – Murphy316

+0

Есть ли что-нибудь, что мне нужно сделать, чтобы рассказать ему, чтобы посмотреть в App.urls. ру для этого имени? – Murphy316

ответ

2

Поскольку ваши приложения ссылаются на разные файлы urls.py, чтобы использовать именованные URL-адреса, вам необходимо получить доступ к каждому из них с собственным пространством имен.

Check out the example in the docs here. Существует файл urls.py, который использует include('polls.urls'). Затем в приложении «Опросы» есть несколько названных URL-адресов, index и detail. Поскольку они находятся в приложении, к этим URL-адресам можно получить доступ, используя их пространство имен - {% url 'polls:index' %} и {% urls 'polls:detail' %} соответственно.

Если вы работаете до Django 1.9, вам необходимо указать аргумент namespace после инструкции include. Начиная с 1.9 Django автоматически использует имя приложения для пространства имен, когда вы include файл urls.py из приложения.

+0

Это не похоже на работу '{% url 'AppB: name_user_profile'%}' – Murphy316

+0

только что обновил мой вопрос – Murphy316

+0

Проигнорированное пространство имен будет вестись в нижнем регистре имени приложения, следуете ли вы за этим форматом или используете ли вы капитализацию в этом примере? – souldeux

Смежные вопросы