繁体   English   中英

在 django 模板中使用 python 字典

[英]Using python dictionaries in a django template

我正在自己学习 django,正如您可以想象的那样,这非常困难。
我试图在视图中制作一个自适应形式。 该应用程序有一个 model 通过 JSON 存储有关表单的所有信息(如输入字段的占位符、ID 和类型)(如果有更简单或更智能的方式,我认为它会更好)。

模块内的所有对象

模块内的对象示例

因此,在视图文件中,我已将 2 个变量传递给模板(下图),这些变量引用上图中 object 中的 dict。

from django.shortcuts import render
from fattura.models import JobType
import json

def fattura(request):
    datas = JobType.objects.all()
    for i in datas:
        if i.jobType==0:
            dts = json.loads(i.inputs)
            break
    return render(request, 'fattura/fattura.html', {"dts": dts, "inputs": dts["inputs"]})

所以,现在我的 scope 是从模板中 for 语句中的键“inputType”和“placeholder”中提取值,以便将它们插入到 html 文件中。

<main>
  <div class="form">
    <div class="title>Crea Fattura</div>
    <div class="subtitle">Compila tutti i campi correttamente.</div>
    {% for campo in inputs %}
    <div class="input-container ic2">
      <input id="{{ campo }}" class="input" type="{{ inputs.campo.inputType }}" placeholder=" " />
      <div class="cut"></div>
      <label for="{{ campo }}" class="placeholder">{{ inputs.campo.placeholder }}</label>
    </div>
    {% endfor %}
    <button type="text" class="submit">Invia</button>
  </div>
</main>

使用上述方法,我显然无法检索任何内容,但我无法解决此问题。
顺便说一下,这是一个视图(这是一个示例,这就是它只有两个字段的原因):

在此处输入图像描述

输入字段似乎包含字典; 在您拥有的模板中

{% for campo in inputs %}

但这对列表有效,也许您想通过字典使用嵌套迭代器:

{% for key, value in inputs.items %}
   {% if key == 'inputs' %}
      {% for input_name, input_value in value.items %}
          # {{ input_name }} can be nome, cognome, nascita or ammontare
          # {{ input_value }} is the value
      {% endfor %}
   {% endif %}
{% endfor %}

我的建议是更好地组织 json 字段中的数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM