3

provider のforeignKeyとbestbuy_typeのM2Mfieldをリンクしようとしていますが、これらのフィールドのいずれかに何かを保存しようとするたびにエラーが発生します:

(1452, 'Cannot add or update a child row: a foreign key constraint fails (`savingschampion`.`products_masterproduct`, CONSTRAINT `provider_id_refs_id_2ea9c584` FOREIGN KEY (`provider_id`) REFERENCES `products_provider` (`id`))')

私のモデルでは、フィールドは次のように指定されています。

class MasterProduct(BaseModel):
    provider = models.ForeignKey('products.Provider', related_name = 'master_products', blank=True, null=True)
    bestbuy_type = models.ManyToManyField('products.BestBuy',blank=True, null=True)
    ...other (no relationship) fields which work fine

これを使用すると、実際にはdjango adminのフィールドに正しい値が入力されますが、保存時にエラーが発生します。

MySQL と指定されたエンジンを使用すると、次のようになります。

'ENGINE': 'django.db.backends.mysql'

なぜこれが起こるのか誰にも分かりますか?

4

4 に答える 4

0

テーブル内のデータをバックアップしてから、テーブルからデータを削除します。移行を再度実行すると、正常に動作します。

于 2021-07-26T08:42:45.120 に答える