我决定用django在sqllite中使用JsonField(我按照文档在python中替换了windows上必要的dll,所以迁移过程中没有错误)总的来说,表中的列是通过迁移成功创建的(据说),但是,在适当的数据库中,我在表中找不到相应的字段,并且在访问模型字段时遇到错误:表 app_order 没有名为 raskroy_json 的列
我尝试重命名该字段,生成并运行迁移 - 迁移工作没有错误,但问题仍然存在
下面是我设置有问题字段的模型代码(raskroy_json)
class Order(models.Model):
manager = models.ForeignKey(
User,
on_delete=models.RESTRICT,
related_name='manager')
otvetstvenniy_za_proizvodstvo = models.ForeignKey(User, on_delete=models.RESTRICT, related_name='otvetstvenniy_za_proizvodstvo')
description = models.CharField(blank=True, null=True, max_length=150)
client = models.CharField(max_length=50)
# комплектация
dvernaya_korobka = models.BooleanField(default=False)
torec_karkas_polotna = models.BooleanField(default=False)
petli = models.BooleanField(default=False)
zamok_and_otvestka = models.BooleanField(default=False)
yplotnitel = models.BooleanField(default=False)
syhori_ygolki = models.BooleanField(default=False)
montajnie_plastini = models.BooleanField(default=False)
shtykatyrnaya_setka = models.BooleanField(default=False)
# обработка
bez_obrabotki = models.BooleanField(default=False)
pilim_dlya_transportnoi = models.BooleanField(default=False)
mehobrabotka = models.BooleanField(default=False)
pilim_korobky_v_razmer_polotna = models.BooleanField(default=False)
pilim_torec_v_razmer_polotna_s_zapasom = models.BooleanField(default=False)
pilim_torec_v_razmer_polotna = models.BooleanField(default=False)
zapas_mm = models.IntegerField(default=0)
pilim_torec_v_razmer_polotna_s_zapilom = models.BooleanField(default=False)
otrezaem_kontatknie_pyatna = models.BooleanField(default=False)
kontaktnie_pyatna_mm = models.IntegerField(default=0)
frezerovka_korobki_por_petli_i_ovesky_zamka = models.BooleanField(default=False)
frezerovka_torca_or_karkasa_pod_petli_i_zamok = models.BooleanField(default=False)
frezerovka_pod_nestandartnyy_fyrnityry = models.BooleanField(default=False)
na_niz_revers_poloten_pryamoi_torec = models.BooleanField(default=False)
na_verh_poloten_bez_poperechini_pryamoi_torec = models.BooleanField(default=False)
dlya_dverey_bez_verhn_poperechini_plus = models.BooleanField(default=False)
dlya_dverey_bez_verhnei_poperechini_plus_mm = models.IntegerField(blank=True, null=True)
raskroy_json = models.JSONField(default=None, null=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return ("#" +
str(self.id) +
" | " +
str(self.manager) +
" | " +
str(self.description))
def __int__(self):
return (int(self.id))
class Meta:
verbose_name_plural = 'Заказы'
解决了这个问题,我不完全明白如何。现在它适用于迁移。我通过 --fake 对项目中的迁移进行了重置,它可能有一些效果。一般来说,我玩过迁移,现在一切都很好,我进行迁移,无需手动编辑数据库