如何在 django 模板中获取类

Posted

技术标签:

【中文标题】如何在 django 模板中获取类【英文标题】:How to get class in django template 【发布时间】:2015-02-20 00:22:12 【问题描述】:

有没有办法在 django 模板中获取对象类?比如:

 obj.__class__ 

?

【问题讨论】:

什么是obj?如果它是一个模型,您可以添加一个 def get_class_name(self): return self.__class__ 方法并从您的模板中调用 obj.get_class_name 。相关:***.com/questions/6571649/… 我想知道您是如何需要在模板中检索对象的类的。对我来说,这感觉像是一个糟糕的设计,即使您可以使用模板标签来做到这一点 @MihaiZamfir 我有一个串联列表,我需要知道它是什么类型的对象才能为该对象生成正确的 url。 在您的视图中创建两个列表并将它们传递给您的模板不是更好吗?或者如果您不能拆分列表,请制作一个元组列表,第二项指示类型。但这当然只是个人喜好,随心所欲。我喜欢尽可能地限制我的自定义标签/过滤器的数量 【参考方案1】:

你不能调用任何以下划线开头的属性。创建一个custom filter 会帮助你

 @register.filter
 def get_class(obj):
     return obj.__class__

使用

 obj|get_class 

【讨论】:

【参考方案2】:

将它作为 django 的内置功能会很好,但我在这里使用了一个模板标签:

@register.filter
def to_class_name(value):
    return value.__class__.__name__

在模板中:

 obj|to_class_name 

【讨论】:

以上是关于如何在 django 模板中获取类的主要内容,如果未能解决你的问题,请参考以下文章

外键和引用类如何在 Hibernate 实体中一起存在?

serversocket 类如何在同一个端口上服务多个客户端连接?

idea java中Jformdesigner自动生成的类如何在public static void main(String[] args)}中引用

如何在 Django 模板中获取当前 URL?

如何在 Django 模板中获取当前 URL?

如何在 Django 模板中获取当前 URL?