【问题标题】:Does Django `extends` accept namespace resolved templates?Django `extends` 是否接受命名空间解析的模板?
【发布时间】:2014-10-06 22:20:16
【问题描述】:

我试过了:

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')),
                   )

register:

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中的命名空间解析来使用模板?

【问题讨论】:

  • 我不太确定您要做什么。 {% extends %} 的值你想用什么?
  • 这可能会有所帮助:stackoverflow.com/questions/2030225/…
  • @mattm 不是真的。我的用例在 extends 内部是特定的。
  • @schillingt 在问题中详细阐述

标签: python django


【解决方案1】:

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

【讨论】:

  • 真正的 url 没有意义。我正在尝试做的是扩展应用程序的模板(从目录路径明显),而无需键入路径。 base.html 可能存在于它们各自 templates 目录根目录中的多个应用程序中,因此我想通过命名空间引用其中一个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 1970-01-01
  • 2014-11-14
  • 1970-01-01
  • 2010-11-08
  • 1970-01-01
相关资源
最近更新 更多