【问题标题】:Django template {{ item.get_FOO_display }} using only jinja2 without djangoDjango 模板 {{ item.get_FOO_display }} 仅使用 jinja2 而没有 django
【发布时间】:2019-03-04 03:56:09
【问题描述】:

我使用 Django。我还使用独立的 Jinja2 从 django 模型构建电子邮件正文。

我有一个带有选择字段的模型,我想从模型实例中获取它的显示值。

在django模板中,很简单,例如:

{{ form.get_foo_display }}.

但是,如果它在 django 模板之外,它就不起作用。我使用 jinja2 的代码是:

Trip participation:\t{{ item.get_event_trip_display }}

item 是模型实例,event_trip 是选择字段({{ item.event_trip }} 工作正常)

但是get_event_trip_display 呈现为:

Trip participation: <bound method curry.<locals>._curried of <Registration: John Doe>>

已知解决方案:

  1. 使用{% if ... %} 块手动选择选项。

  2. 在 Python 代码中附加具有新属性的实例:

    item.trip_parictipation_display = item.get_trip_participation_display()

我的问题:

有没有更简单的方式hot直接在jinja2中调用函数? (我有很多这样的字段)

【问题讨论】:

  • 你试过Trip participation:\t{{ item.get_event_trip_display() }}

标签: python django jinja2


【解决方案1】:

get_event_trip_display 是一种方法。 Django 模板自动调用方法,但 Jinja2 模板不会。你需要明确地调用它:

{{ item.get_event_trip_display() }}

【讨论】:

  • 优秀。就是这么简单。
猜你喜欢
  • 2011-06-15
  • 2022-01-12
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 2014-08-05
  • 2011-09-17
  • 1970-01-01
  • 2019-11-25
相关资源
最近更新 更多