В Django, как вы ссылаетесь на URL вашего проекта urls.py? - PullRequest
0 голосов
/ 05 февраля 2019

Я делаю проект Django с несколькими приложениями внутри него.Моя структура каталогов выглядит примерно так:

DjangoProject
    project_dir
        settings.py
        urls.py
        wsgi.py
    app1
        urls.py
        ...
    app2
        urls.py
        ...

Я понимаю, как получить доступ к URL-адресам в моих шаблонах, которые являются частью приложений с {% url 'app1:url1' %}, но это потому, что в моих файлах приложения urls.py я могу что-то сделатьвот так:

app_name = 'app1'

urlpatterns = [
    path('', views.view1, name='home'),
]

Кажется, что файл проекта urls.py отличается от файла приложения.Вы не можете дать файлу проекта urls.py app_name, так как же можно ссылаться на URL проекта из шаблона?Я просто полагался на относительные ссылки вроде этого: <a href="/global_url"></a>, но если я когда-нибудь захочу изменить путь к / global_url, мне нужно пойти и обновить все мои жестко закодированные URL-адреса шаблонов.

1 Ответ

0 голосов
/ 05 февраля 2019

Я дебил.Поэтому, когда вы даете URL-адресу имя в файле проекта urls.py, когда вы хотите сослаться на него в шаблоне, вы просто пропускаете часть app:.Итак, что-то вроде

urlpatterns = [
    path('global_url/', global_views.global_view1, name='global1')
]

доступно в вашем шаблоне, например: {% url 'global1' %}

...