无法保存m2m关系模型

时间:2014-08-14 17:52:30

标签: django m2m

我很挽救m2m关系。

models.py

class BasicTag(models.Model):
    name = models.CharField(max_length=150, verbose_name="Tag Name")
    image_class = models.CharField(max_length=30, blank=True)
    color = models.CharField(max_length=10, blank=True)

    def __unicode__(self):
        return self.name


class ExtendedTag(models.Model):
    parent = models.ManyToManyField(BasicTag, blank=True,
                                    related_name="parent")
    category = models.ManyToManyField(BasicTag, blank=True,
                                      related_name="category")

    def __unicode__(self):
        return self._id


class CombineTag(BasicTag, ExtendedTag):
    """

    """

forms.py

class CombineTagForm(forms.ModelForm):
    class Meta:
        model = CombineTag

现在我将表单初始化为

>form = CombineTagForm({"name":"shyam"})#this don't have any parent i.e. root tag
>form.is_valid()
True
>instance = form.save(commit = False)
>instance.save()
>form.save() #return errors
#error
ProgrammingError: column tag_extendedtag_parent.basictag_id does not exist
LINE 1: DELETE FROM "tag_extendedtag_parent" WHERE "tag_extendedtag_...
>form.save_m2m() #return errors ... struck here

那么我应该如何保存m2m字段模型。我跟着official doc说了

  

如果您的模型具有多对多关系,并且在保存表单时指定commit = False,则Django无法立即保存多对多关系的表单数据。这是因为在实例存在于数据库中之前,无法为实例保存多对多数据。

但我无法弄清楚我在这里缺少什么。

0 个答案:

没有答案