动态添加多对多关系,Django的对象

问题描述 投票:4回答:2

我公司类具有自身的多个M2M关系

类公司(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")

我希望能够动态地添加这样的M2M的关系,但它显然是行不通的。有没有办法来动态地做到这一点?

                    company, was_created = Company.objects.get_or_create(name=info)
                    setattr(self,key, company)
python django dynamic
2个回答
5
投票

得到它了。只需要通过一个列表,而不是..

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

2
投票

语法是添加M2M是field.add(obj_pk or obj)

company, was_created = Company.objects.get_or_create(name=info)
self.comp.add(company)
© www.soinside.com 2019 - 2024. All rights reserved.