0

各セルが json 値を表す編集可能なブートストラップ テーブルを作成しようとしています。このJSONFieldを使用して Django モデルを定義しました(Postgres のものではありません)。これは私のモデルです。

class Extracted_Tables(models.Model):
...
content = JSONField(blank=True, null=True)

マイテンプレート

<tbody>
            {% for form in formset.forms %}
                <tr>
                    {% for field in form %}
                        {% if field.is_hidden %}
                        <input type="hidden" >{{ field }}</input>
                        {% else %}
                            {% for k,v in field.value.items %}
                                <td>{{v}}</td>
                            {% endfor %}
                        {% endif %}
                    {% endfor %}
                </tr>
            {% endfor %}
        </tbody>

このテンプレートは、次のHTMLをレンダリングします。

<tr>
<td>Jamaica</td>
<td>Kingston</td>
<td>North America</td>
<td>11424</td>
<td>2500000</td>
<input type="hidden"><input type="hidden" name="formset_1-0-id" value="353" id="id_formset_1-0-id">
</tr>

機能しない理由をよりよく理解するには、セルがこのモデルの属性である Django モデルを使用しました。この場合、モデルのフィールドを編集していたので、セルの編集に問題 はありませんでした。今回は、セルはモデルのフィールド自体ではありません。私が持っている唯一のモデル フィールドは JSONField であり、そのセルを編集しようとしています。 json の値。

モデル:

class Extracted_Variables(models.Model):
    variables = models.CharField(max_length=500)
    values = models.CharField(max_length=500)

テンプレート: _

    <tbody>

        {% for form in formset.forms %}
            <tr>
                {% for field in form %}
                    {% if field.is_hidden %}
                    <input type="hidden" >{{ field }}</input>
                    {% else %}
                    <td>{{ field }}</td>
                    {% endif %}
                {% endfor %}
            </tr>
        {% endfor %}
    </tbody>

レンダリングされたテンプレート:

<tr>
<td><input type="text" name="form2-0-variables" value="variable 1" maxlength="500" class="form-control" id="id_form2-0-variables"></td>
<td><input type="text" name="form2-0-values" value="whatever" maxlength="500" class="form-control" id="id_form2-0-values"></td>
<input type="hidden"><input type="hidden" name="form2-0-id" value="1" id="id_form2-0-id">
</tr>

モデル フィールドに基づいて Id と特定の属性を追加することによってフォームが作成されたことがわかりますが、JSONField の値を表示したときには何も起こりませんでした。

テンプレートでフォームを作成するときに、これらのフィールドを手動で作成する必要がありますか? または、ここでどのようなアプローチが必要ですか?

4

1 に答える 1