如何在 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 模板中获取类的主要内容,如果未能解决你的问题,请参考以下文章
serversocket 类如何在同一个端口上服务多个客户端连接?
idea java中Jformdesigner自动生成的类如何在public static void main(String[] args)}中引用