簡體   English   中英

django很多很多領域都沒有保存

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM