[英]django many to many field does not save
我有以下型號:
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關系。 我究竟做錯了什么?
問題是這個循環運行一次並輸入了所有值。重復項沒有再次運行並且沒有拋出錯誤。
您已在實體模型中為標記指定了related_name =“companies”。 所以,這就是為什么你的許多人都沒有得到拯救的原因。 要解決這個問題,請更換您的線路,
e.tags.add(tag)
用,
e.companies.add(tag)
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.