3

如何在 Django 1.5 的模板中获取当前视图 (my_app.views.index) 的全名?

对于表单,我在使用模板标签读取的模板中有一个名为“view”的对象。但是对于 DetailViews,我看不到任何类似的东西。

有没有办法使用自定义模板处理器?

谢谢

编辑

情况一:

  1. 我检索一个页面,例如“/foo/bar/5/edit”。
  2. Django 将以 pk=5 调用 'foo.views.editbar'。
  3. 此视图呈现模板“foo/bar_form.html”

情况2:

  1. 如果我检索 '/foo/bar/new'
  2. Django 将调用 'foo.views.newbar'
  3. 此视图呈现与上面相同的模板('foo/bar_form.html')

如何签入此模板“foo/bar_form.html”,它是从哪个视图呈现的?结果应该是以下之一

  • 'foo.views.editbar'
  • 'foo.views.newbar'
4

3 回答 3

16

在视图中输入

{% with request.resolver_match.view_name as view_name %}
    ...
    {{ view_name }}
    ...
{% endwith %}
于 2017-05-22T10:16:33.720 回答
0

我不确定我是否完全理解要求,但请查看inspect.stack

inspect.stack()[1][3]
于 2013-06-19T22:18:51.370 回答
-3

只需将属性设置为视图中的请求对象:

setattr(request, 'view', 'app.views.func')

并在模板中检查:

{% if request.view == 'app.views.func' %}
    do something
{% endif %}

它对我有用。

于 2013-09-11T17:17:11.570 回答