【发布时间】:2012-03-31 09:25:23
【问题描述】:
Django 有两个模板标签“with”和“url”。能够将两者结合起来会很方便:
{% with view=really.long.path.to.some.view.somewhere %}
{% url view.foo %}
{% endwith %}
但是如果你尝试这样做,你会发现“with”没有被应用到“url”标签内(因为你得到一个关于没有“view.foo”的错误)。
所以,我的问题是,我只是缺少一些可以使上述工作正常进行的标志/选项/替代格式,还是真的不可能使用“with”来简化“url”标签?
【问题讨论】:
-
这是
with的一个非常有趣的用例,不知道这是可能的。但在大多数情况下,我宁愿回避这种需要,通过声明命名的 URL 模式并在url中使用这些名称而不是 long.path.to.view -
是的,命名的 url 模式绝对是一般的方法。我正在开发一个遗留代码库,该代码库在页面上打印出一大堆 url(供 Javascript 使用),并且命名每个都将是一个巨大的痛苦。能够使用“with”让它们一举缩短/更容易阅读现在绝对是更可取的(然后有一天我们可能会回过头来命名它们)。