Python 如何在django模板中获取类

Python 如何在django模板中获取类,python,django,Python,Django,有没有办法在django模板中获取对象类?比如: {{ obj.__class__ }} ?这是django的一个内置功能,但我在这里使用了templatetag: @register.filter def to_class_name(value): return value.__class__.__name__ 在模板中: {{ obj|to_class_name }} 不能调用任何以underescore开头的属性。创建一个有助于您的 @register.filter de

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

{{ obj.__class__ }}

这是django的一个内置功能,但我在这里使用了templatetag:

@register.filter
def to_class_name(value):
    return value.__class__.__name__
在模板中:

{{ obj|to_class_name }}

不能调用任何以underescore开头的属性。创建一个有助于您的

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

{{ obj|get_class }}

什么是obj?如果它是一个模型,您可以添加一个
def get_class_name(self):返回self.\u class_
方法并从模板中调用{{obj.get_class_name}。相关:我想知道您是如何需要在模板中检索对象的类的。这对我来说是一个糟糕的设计,即使你可以用一个模板tag@MihaiZamfir我有一个串联列表,我需要知道为该对象生成正确url所需的对象类型。在视图中创建两个列表并将它们传递给模板不是更好吗?或者,如果无法拆分列表,则创建一个元组列表,第二项指示类型。当然,这只是个人喜好,随你的便。我喜欢尽可能地限制自定义标记/过滤器的数量