【发布时间】:2012-04-08 17:35:12
【问题描述】:
在我创建的所有视图中,通常会声明“模型 = 学生”或任何其他模型。我想做的是展示
在模板中插入学生
。有没有一种简单的方法可以做到这一点,而无需在上下文中传递新变量?我在这里看到了一些答案,但他们都不得不改变看法 =/
其实我想展示的是: 元类: verbose_name = _(u"学生")
在我通过视图的模型中。
【问题讨论】:
在我创建的所有视图中,通常会声明“模型 = 学生”或任何其他模型。我想做的是展示
我在这里看到了一些答案,但他们都不得不改变看法 =/
其实我想展示的是: 元类: verbose_name = _(u"学生")
在我通过视图的模型中。
【问题讨论】:
Python 中的类名存储在任何对象的__class__.__name__ 属性中。默认情况下,Django 不允许您在模板中使用以__(双下划线)开头的属性,因为它表示私有属性。
简单的解决方案是写一个custom template filter:
@register.filter
def classname(obj):
return obj.__class__.__name__
然后在你的模板中使用它(记得先在你的模板中使用{% load libraryname %}):
{{ obj|classname }} # Will print the class name of obj
【讨论】: