【问题标题】:How to get the name of a class model in template django如何在模板django中获取类模型的名称
【发布时间】:2018-03-10 16:26:18
【问题描述】:

此问题与此问题 (Model name of objects in django templates) 相似但不一样。

我想知道如何获取 Models 类名(在本例中为“Apple”),或者至少返回一个我可以传递的字符串。

模型.py

   django.db import models
   class Apple(models.Model):
      .....

apple.html

 <p>Sorry, no {{ ***Model class name**** }}</p>

浏览器中的一个例子:::" 对不起,没有苹果 "

编辑

一些额外条件:

  1. 如果没有从模型创建的对象,因此会出现“对不起,没有苹果”
  2. 如何灵活地分类,以便您可以对任何种类的水果使用相同的模板。

【问题讨论】:

  • 你能澄清一下你的问题有什么不同吗?例如,如果您传递Apple 的实例,那么apple.__class__.__name__ 将给您"Apple"
  • 当然,没问题。我想讨论两个问题: 1. 如果没有该模型的对象。我知道这听起来很奇怪,但如果你想为苹果创建一个列表视图但没有苹果,因此会出现“对不起,没有苹果”。 2.如果您想为多个模型重用模板,例如。梨/菠萝/香蕉/等。我希望这会有所帮助。再次感谢。

标签: django django-models django-class-based-views


【解决方案1】:

如果您将一个对象传递给您的模板,并且您想在模板中而不是在视图中进行此处理,一种方法是创建以下template tag

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

并获得名称

{{apple|get_class}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 2012-01-04
    • 2019-01-14
    • 2010-11-06
    • 2014-02-07
    • 2019-09-06
    • 2016-07-16
    • 2011-03-10
    相关资源
    最近更新 更多