Skip to main content
 首页 » 编程设计

python之Django `extends` 是否接受命名空间解析的模板

2025年05月04日31kenshinobiy

好吧,我试过了:

proj/templates/registration/register.html:

{% extends "a:base.html" %} 

proj/proj/urls.py:

from a import urls as a_urls 
import views 
 
urlpatterns = patterns('', 
                       url(r'^accounts/register$', views.register), 
                       url(r'^a/', include(a_urls, namespace='a')), 
                   ) 

注册:

def register(request, *args, **kwargs): 
    return render(request, 'registration/register.html') 

没有工作(TemplateDoesNotExist at/accounts/register)。

{% extends {% url "a:base.html"%} %} 也不起作用('extends' 采用一个参数)。

我尝试做的是扩展应用程序的模板(从目录路径中可以看出),而无需键入路径。 base.html 可能存在于多个应用程序各自 templates 目录的根目录中,因此我想通过命名空间引用其中一个。

那么有没有办法在extends中通过命名空间解析来使用模板呢?

请您参考如下方法:

模板路径中没有命名空间这样的东西,因此不清楚您要做什么。使用 URL 也没有任何意义:路径与 URL 无关,它只是一个相对于您的 TEMPLATE_DIRS 基础的文件路径。