Skip to main content
 首页 » 编程设计

python之如何区分 django 模板中的列表和字符串

2025年05月04日24zdz8207

我正在使用 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 %} 

附言对属性名称使用大写字母不是一个好的约定。