简体   繁体   English

动态将ManyToMany关系添加到Django对象

[英]Dynamically add ManyToMany relationship to Django objects

My Company class have multiple M2M relationship with itself 我的公司类与自身具有多个M2M关系

class Company(models.Model): 公司类别(models.Model):

divisions = models.ManyToManyField('self', symmetrical=False, related_name="parent_companies")
parents = models.ManyToManyField('self', symmetrical=False, related_name="divisions_companies")
comp = models.ManyToManyField('self', symmetrical=False, related_name="comp")
friends = models.ManyToManyField('self', symmetrical=False, related_name="friends")

I would like to be able to dynamically add M2M relationship like this, but it obviously does not work. 我希望能够像这样动态添加M2M关系,但是显然不起作用。 Is there a way to do it dynamically ? 有没有办法动态地做到这一点?

                    company, was_created = Company.objects.get_or_create(name=info)
                    setattr(self,key, company)

Got it. 得到它了。 Simply have to pass a list instead.. 只需传递列表即可。

 company, was_created = Company.objects.get_or_create(name=info)
                        setattr(self,key, [company,])

The syntax is for adding M2M is field.add(obj_pk or obj) 用于添加M2M的语法是field.add(obj_pk or obj)

company, was_created = Company.objects.get_or_create(name=info)
self.comp.add(company)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM