回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>当我试图通过manage.py shell将数据插入数据库时,出现了以下错误</p>
<pre><code>ValueError: Cannot assign "'Ciawigebang'": "Desa.kecamatan" must be a "Kecamatan" instance.
</code></pre>
<p>这是我的模特</p>
<pre><code>from django.db import models
class Kecamatan(models.Model):
kecamatan = models.CharField(max_length=30)
def __str__(self):
return self.kecamatan
class Desa(models.Model):
desa = models.CharField(max_length=30)
kecamatan = models.ForeignKey(Kecamatan, null=True, blank=True, on_delete=models.CASCADE)
def __str__(self):
return self.desa
</code></pre>
<p>这里是我的json文件snippet scrap.json</p>
<pre><code>[
{
"Kecamatan": "Ciawigebang",
"Desa": [
"Ciawigebang",
"Ciawilor",
"Cigarukgak",
"Cihaur",
"Cihirup",
"Cijagamulya",
"Cikubangmulya",
"Ciomas",
"Ciputat",
"Dukuhdalem",
"Geresik",
"Kadurama",
"Kapandayan",
"Karangkamulya",
"Kramatmulya",
"Lebaksiuh",
"Mekarjaya",
"Padarama",
"Pajawanlor",
"Pamijahan",
"Pangkalan",
"Sidaraja",
"Sukadana",
"Sukaraja"
]
},{
"Kecamatan": "Cibeureum",
"Desa": [
"Cibeureum",
"Cimara",
"Kawungsari",
"Randusari",
"Sukadana",
"Sukarapih",
"Sumurwiru",
"Tarikolot"
]
},{
"Kecamatan": "Cibingbin",
"Desa": [
"BANTAR PANJANG",
"CIANGIR",
"Cibingbin",
"Cipondok",
"CISAAT",
"Citenjo",
"DUKUHBADAG",
"Sindang Jawa",
"SUKA MAJU",
"SUKAHARJA"
]
}...
]
</code></pre>
<p>这是我用来将数据从python manage.py shell插入数据库的代码</p>
<pre><code>import json
from apps.models import Desa, Kecamatan
with open('scrap.json') as f:
daerahs = json.load(f)
for daerah in daerahs:
for x in daerah['Desa']:
y=Desa(desa=x, kecamatan=daerah['Kecamatan'])
y.save()
</code></pre>
<p>如何解决这个问题?有这么多类似的问题,但我不知道如何解决这个问题在我的情况下。谢谢你的帮助</p>