Python django多对多字段不保存

Python django多对多字段不保存,python,django,django-models,many-to-many,Python,Django,Django Models,Many To Many,我有以下型号: class Offering(models.Model): entity = models.OneToOneField('companies.entity') company_type = models.ManyToManyField(CompanyTypeChoice, blank=True) @python_2_unicode_compatible class Tag(models.Model): word = models.CharFiel

我有以下型号:

class Offering(models.Model):  
    entity = models.OneToOneField('companies.entity')
    company_type = models.ManyToManyField(CompanyTypeChoice, blank=True)

@python_2_unicode_compatible
class Tag(models.Model):  
    word = models.CharField(max_length=64)

@python_2_unicode_compatible
class Entity(models.Model):
    tags = models.ManyToManyField(Tag,related_name='companies', blank=True, null=True)

class CompanyTypeChoice(models.Model):
title = models.CharField(max_length=64)
我有以下循环要创建M2M标记关系:

offerings = Offering.objects.all()
    for o in offerings:
        for ct in o.company_type.all():
            tag = Tag.objects.get(word=ct.title)
            e = Entity.objects.get(pk=o.entity.id)
            e.tags.add(tag)

这不会保存M2M关系。我做错了什么?

问题是这个循环运行了一次,并在中输入了所有的值。重复项没有再次运行,也没有抛出错误。

问题是此循环运行了一次,并在中输入了所有值。重复项没有再次运行,也没有抛出错误。

您已经为实体模型中的标记指定了相关的公司。所以,这就是为什么你的多对多价值没有得到保存。要解决此问题,请更换您的线路

e.tags.add(tag)
有,


我希望这会有所帮助。

您已经为实体模型中的标记指定了相关的公司。所以,这就是为什么你的多对多价值没有得到保存。要解决此问题,请更换您的线路

e.tags.add(tag)
有,


我希望这有帮助。

Django是否设置为自动提交?
CompanyTypeChoice
model是否良好?@BishwasMishra。我没有更改自动提交的默认设置。CompanyType具有值并正在向循环提供数据。我也发布了CompanyTypeChoice模型。Django是否设置为自动提交?
CompanyTypeChoice
model是否良好?@BishwasMishra。我没有更改自动提交的默认设置。CompanyType具有值并正在向循环提供数据。我也发布了CompanyTypeChoice模型。