簡體   English   中英

Django 模板循環每個字符

[英]Django template looping for each character

我有一個從 100 個 Cisco 交換機生成的文本文件,如下所示:

['device1', 'device2', 'device3', 'device4', ....., deviec100]

我想在模板中使用循環顯示這些信息。 所以我在我的 HTML 文件中有這樣的東西來循環遍歷每個設備:

{% for x in devie_list %}
{{ x }}
{% endfor %}

但它只是在每個字符之間添加一個空格,所以結果是這樣的: [ ' devi c e 1 ', ' devi c e 2, .... ]

如何告訴 Django 遍歷逗號內的每個項目? 或者更好地說出每個列表項。

您的devie_list不是字符串列表,而是看起來像字符串列表的字符串。

您可以使用ast.literal_eval(…) [Python-doc]將其評估為 Python 文字,從而獲得字符串列表:

from ast import literal_eval

devie_list = literal_eval(devie_list)

因此在模板中使用 this 的結果。

您應該首先將device_list轉換為列表數據類型,您可以使用以下任何方法執行此操作,然后在編寫時對其進行迭代:

方法一:使用python json模塊

import json
device_list = json.loads(device_list)

方法二:使用eval() function

device_list = eval(device_list)

方法三:使用字符串類型方法

device_list = device_list.strip('[]').replace('"', '').replace(' ', '').split(',')

在您的視圖中或在您的 model 下返回此:

#Your list is a string you can turn into a list like this
device_list_as_list = device_list[1:-1].split(',')

模板:

{% for x in devie_list_as_list %}
 {{ x }}
{% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM