我有一个 Python/Django 问题,我将一个字符串或一个字符串列表传递给模板。如果它是一个列表,我需要遍历它并在单独的行上输出每个字符串,如果它是一个字符串,我只需要输出字符串。我需要能够区分值类型并进行相应调整。
目前我有与此类似的代码:
if isinstance(values, list):
for value in values:
html += value + "<br />"
else:
html += values + "<br />"
我的问题是双重的:
首先,我正在寻找一种更好/更pythonic的方式(如果可能的话)来做到这一点,这将产生相同的结果。我知道在某些情况下,该isinstance
方法不是一个理想的解决方案,但是我可以使用类似hasattr
的方法吗?它会提高效率吗?
其次,理想情况下,我希望使用 Django 模板语言来实现这一点。如果我继续使用isinstance
或更改为,hasattr
我将不得不制作自定义模板过滤器或标签才能传递正确的参数。我应该忘记模板并只编写在视图中生成 HTML 的代码(不好的做法),还是其中一个的答案是适合我情况的最佳方法?(在 django 模板或django 模板系统中执行 getattr() 样式查找,在模型中调用函数)
当前模板代码可以在这里找到:http: //pastebin.com/JK2PRrWv
背景:
我目前正在编写一些 Python(Django) 代码,这些代码实现了一个用于处理查询的简单 REST/Json API。要求之一是将 Python 字典列表(从 JSON 解析)转换为非常简单的 HTML 表。为了实现这个功能,我使用了一个 Django 模板,它获取 Python 字典列表并从中生成 HTML。
任何帮助/建设性的批评将不胜感激。