我正在尝试将提供者上的foreignKey和bestbuy_type上的M2M字段链接起来 - 但是每当我尝试将任何内容保存到这些字段中的任何一个时,我都会收到错误:
(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`))')
Run Code Online (Sandbox Code Playgroud)
这些字段在我的模型中指定为:
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
Run Code Online (Sandbox Code Playgroud)
使用它确实会在django admin中为字段填充正确的值,但是在保存时会产生错误.
使用MySQL和指定的引擎是:
'ENGINE': 'django.db.backends.mysql'
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会发生这种情况?
事实证明,正在创建的新表使用InnoDB而不是像现有表一样使用MyISAM.
将此行添加到我的数据库配置通过强制由South创建的新表来使用MyISAM来解决这个问题:
'OPTIONS' : { 'init_command' : 'SET storage_engine=MyISAM', },
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3601 次 |
| 最近记录: |