我正在使用 Django 模板在 Google AppEngine 上开发一个项目,所以我必须使用 {{ aitem.Author }} 之类的标签来打印我的 HTML 模板中的内容。
Author 可以是 string 或 list 对象,我没办法提前告诉它。当作者是一个列表并且我尝试在我的模板上打印它时,我得到了丑陋的结果
Author: [u'J. K. Rowling', u'Mary GrandPr\xe9']
有什么方法可以有效地处理这种情况(基本上根据字段的类型打印不同的字段)?我是否必须依赖自定义标签或任何其他方式?
请您参考如下方法:
我认为最干净的解决方案是向模型 get_authors() 添加一个方法,它总是返回一个或多个作者的列表。然后你可以使用:
Author: {{ aitem.get_authors|join:", " }}
如果出于某种原因您只能访问模板而不能更改模型,那么您可以使用如下 hack:
{% if "[" == aitem.Author|pprint|slice:":1" %}
Author: {{ aitem.Author|join:", " }}
{% else %}
Author: {{ aitem.Author }}
{% endif %}
附言对属性名称使用大写字母不是一个好的约定。
