我使用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>>
已知的解决方案:
使用{% if ... %}
块手动选择选项。
在Python代码中为实例添加新属性:
item.trip_parictipation_display = item.get_trip_participation_display()
我的问题:
是否有更简单的方法可以直接在jinja2中调用该函数? (我有很多类似的字段)
答案 0 :(得分:2)
get_event_trip_display
是一种方法。 Django模板会自动调用方法,但Jinja2模板不会。您需要明确地调用它:
{{ item.get_event_trip_display() }}