在模板中使用函数(Django/Python)

卡罗

我正在尝试使用一个函数来比较表单的标题和数据中的键。如果键不相似,此函数会添加一个空字段。

它在我的 views.py 中运行良好:

#Entries define all the datas taken from the fobi forms.

headers = json.loads(entries{0}.saved_data)
headers  = headers.items()

for key, value in headers:
    for data in entries:
        data = json.loads(data.saved_data)

        formatted[value] = data.get(key, '')
        print(entries)


formatted = formatted.items()

然后我将格式化传递到上下文中,并在我的模板中执行了以下操作:

<tr>

            {% for key, valeur in headers %}
            <th>
            {{ key }}
            </th>
            {% endfor %}
            </tr> 


          </thead>
          <tbody>

                <tr>

                {% for key, valor in headers %}
                {% for cle, valeur in formatted %} 


                {%if cle == valor%}

                 <td> {{valeur}}</td>

                {% endif %}                                     
                {% endfor %}
                {% endfor %}

                </tr>                           
          </tbody>   

结果是完美的,例如每个标题都与数据对齐。如果缺少一些数据,例如图片,则此列中有一个空的sace。在此处输入图片说明

我只通过循环打印了一个表单(最后一个从格式化的字典中保存)。我想打印我所有的表格。但是在views.py 中似乎是不可能的。

我如何将其管理到模板中?

谢谢您的回答 !

BR,卡罗。

卡罗

我找到了解决方案。

我创建了一个字典列表:

formattedList = []

然后,我更改我的初始循环以获取列表中的每个字典:

for entry in entries:
    formatted = {}
    for key, value in headers:

       data = json.loads(entry.saved_data)

       formatted[value] = data.get(key, '')

    formatted = formatted.items()
    **formattedList.append(formatted)** 

最后,我在模板文件中更改了这些行:

<tbody>
                 **{%for element in formattedList%}**                
                <tr>

                {% for key, valor in headers %}
                **{% for cle, valeur in element %}**

                {%if cle == valor%}

                 <td> {{valeur}}</td>

                {% endif %}                                   
                {% endfor %}
                {% endfor %}

                </tr>        
                 {% endfor %}            
          </tbody>   

一切正常!

我得到了所有的结果!

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章