各セルが 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 の値を表示したときには何も起こりませんでした。
テンプレートでフォームを作成するときに、これらのフィールドを手動で作成する必要がありますか? または、ここでどのようなアプローチが必要ですか?