我正在一个需要存储可在JSONField内更改的数据的网站上
例如,我的默认JSON类似于:
{
"apple": [
[5,10],
[20,40]
],
"banana": [
[5,10],
[20,40]
],
"orange": [
[5,10],
[20,40]
],
}
然后我的模型将类似于:
from jsonfield import JSONField
...
class MyModel(models.Model):
name = models.CharField(...)
fruits = JSONField(default=json)
我当前拥有的表单是:
class MyForm(forms.ModelForm):
class Meta:
model = models.MyModel
fields = (
'name',
'fruits'
)
模板有点棘手,但可以说我有一个代码,可以为JSON中的每个数字打印一个文本框,例如:
{% csrf_token %}
{% for fruit, values in user.MyModel.fruits.items %}
<input type="text" name="{{fruit}}_0_0" value="{{values.0.0}} id="id_{{fruit}}_0_0">
<input type="text" name="{{fruit}}_0_1" value="{{values.0.1}} id="id_{{fruit}}_0_1">
<input type="text" name="{{fruit}}_1_0" value="{{values.1.0}} id="id_{{fruit}}_1_0">
<input type="text" name="{{fruit}}_1_1" value="{{values.1.1}} id="id_{{fruit}}_1_1">
我无法更改数据库中的值。它不显示错误,只是不起作用。视图文件中的MyForm.is_valid()
返回False
答案 0 :(得分:0)
您将无法验证没有以下内容的表单:
Form
中声明的所有字段完全一样,不多于不少在这里,您必须手动处理表单数据或编写Form
才能将水果列表转换为可转换为JSON的对象,然后再将其传递给模型