如何从架构创建动态表单字段

时间:2018-06-21 17:32:53

标签: python json django forms dynamic

我正在尝试创建一个JSON Creator表单,该表单是根据用户选择的模式动态创建的。我举了一个我想要一个或多个或多个外观的示例。

采用此给定架构:

{
    "type":"object"
    "properties":
        "color": {
            "type": "string",
            "enum": ["red","green","blue"]
        },
        "unique_id": {
            "type": "string"
            "maxLength": 15 
        },
        "workload":{
            "type": "object",
            "properties":{
                "write_pre":{
                    "type": "number",
                    "minimum": -1
                },
                "read_pre":{
                    "type": "number",
                    "minimum": -1
                },
                "required": ["write_pre","read_pre"],
                "additionalProperties": false
            }
        },
        "required": ["color", "unique_id"],
        "additionalProperties": false
}

我希望我的表单看起来像这样:

{% load static %}
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="{% static "css/background.css" %}">
    </head>
    <body>
      <div class="navbar">
      </div>
        <h1>Welcome To The JSONCreator</h1>
        <form method="post" class="creator">
          {% csrf_token %}
          <h4>color: *required</h4>
                <select name="color" required>
                  <option value="red">red</option>
                  <option value="green">green</option>
                  <option value="blue">blue</option>
                </select>
          <h4>unique_id: *required</h4>
            <input type="text" name="unique_id" required>
          <h4>workload:</h4>
            <h5>work_pre: *required</h5>
              <input type="number" min="-1" name="workloadWork_pre" required>
            <h5>read_pre: *required</h5>
              <input type="number" min="-1" name="workloadRead_pre" required>
          <br><br><input type="submit" value="submit">
        </form>
    </body>
</html>

我的问题是我不知道如何将表单字段自动更新为架构中给定的属性字段。我计划不实际使用Django的表单而不是HTML编写表单。在这个示例中,我只是使用HTML作为一个非常快速的模型,从而为我的问题提供了更多的上下文。

我正在使用Python2.7和Django 1.11,并且没有数据库

0 个答案:

没有答案