如何在Django中引用非基础App的URL路径?
Django跨App引用URL的正确方式
要在模板里引用account App的URL,你需要按以下步骤操作:
给account App设置URL命名空间
在account/urls.py中添加app_name变量,指定该App的命名空间:# account/urls.py from django.urls import path from . import views app_name = 'account' # 定义App的命名空间 urlpatterns = [ path('login/', views.login, name='login'), # 这里的name是该URL的名称 ]在根URL配置中引入account的URL
在mywebsite/urls.py中正常include account的URL即可:# mywebsite/urls.py from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('account/', include('account.urls')), ]在模板中正确引用
现在就可以在模板里通过{% url 'account:login' %}来引用account App里的login路径了,格式是{% url '命名空间:URL名称' %}。
之前你尝试的{% account.url 'login' %}和{% account/url 'login' %}都不符合Django模板标签的语法规范,所以无法生效。
内容的提问来源于stack exchange,提问作者Tarik Castro
相关产品推荐
相关产品推荐

