【问题标题】:Show Model name in a template在模板中显示模型名称
【发布时间】:2012-04-08 17:35:12
【问题描述】:

在我创建的所有视图中,通常会声明“模型 = 学生”或任何其他模型。我想做的是展示

在模板中插入学生

。有没有一种简单的方法可以做到这一点,而无需在上下文中传递新变量?

我在这里看到了一些答案,但他们都不得不改变看法 =/

其实我想展示的是: 元类: verbose_name = _(u"学生")

在我通过视图的模型中。

【问题讨论】:

标签: django templates


【解决方案1】:

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

【讨论】:

  • 我明白了,但这里的问题是我还没有对象。我在一个空列表视图中,需要一个插入学生的链接。您的解决方案适用于对象。我所拥有的只是一个模型 = 与我在视图中传递的 Student 相关的 Student 上下文...
  • 我不知道你想要达到什么目的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-10
  • 2012-09-02
  • 2018-09-23
  • 2019-06-24
  • 1970-01-01
  • 2018-06-19
相关资源
最近更新 更多