我有一个模特:
class picture(models.Model):
name = models.CharField(null=False, blank=False, max_length=128)
collections = models.ManyToManyField('collection', null=False, blank=False)
sizes = models.ManyToManyField('picture_size', null=False, blank=False)
papers = models.ManyToManyField('picture_paper', null=False, blank=False)
base_price = models.DecimalField(decimal_places=2, null=False, blank=False, default=2000, max_digits=10)
img_icon = models.FileField(blank=False, null=False, upload_to='pic_icons')
img_large = models.FileField(blank=False, null=False, upload_to='pic_large')
img_huge = models.FileField(blank=False, null=False, upload_to='pic_huge')
is_active = models.BooleanField(blank=False, null=False, default=True)
和picture_paper:
class picture_paper(models.Model):
name = models.CharField(null=False, blank=False, max_length=128)
price_per_ssm = models.DecimalField(null=False, blank=False, decimal_places=2, max_digits=10)
is_active = models.BooleanField(null=False, blank=False, default=True)
我在管理员中注册他们的模型,可以创建picture_paper但不能删除它:
(1054,'where子句'中的“未知栏'picture_paper_id'”)
它正在构建的SQL是:
'DELETE FROM `core_picture_papers` WHERE `picture_paper_id` IN (%s)'
解释core_picture_papers:
id int(11) NO PRI auto_increment
picture_id int(11) NO MUL
paper_id int(11) NO MUL
我的模型设置是完全错误的(我正在尝试构建一个纸种类的字典并将它们挂钩到图片 - 图片可以与几个尺寸或一个等相关)?或者有些东西我不见了?
答案 0 :(得分:0)
我想说您正在尝试删除与现有picture_paper
对象相关的picture
对象。由于您的M2M不能为空或空白,因此当您尝试删除它时会出现错误。
查看关于on_delete参数的Django文档。您可能需要将其设置为PROTECTED
并正确处理异常。