Django 多对多:如何获取 id

Def*_*awN 5 django many-to-many

我有具有 Manytomany 字段的模型:

class Brand(models.Model):
    Company_Group = models.ManyToManyField(Company)

class Company(models.Model):
    Pref_Company_Name_Flg = models.CharField(u'Preferred Name Flag',max_length=255, default="")
    Pref_Company_Name = models.CharField(u'Preferred Name',max_length=255, default="")
Run Code Online (Sandbox Code Playgroud)

我想过滤包含“company_instance”的品牌ID

brands = Brand.objects.all()
company_instance=company.objects.filter(id =company_id)
for brand in brands:
    for i in Brand.Company_Group.through.objects.filter(Company_Group = brand):
        print i.id
Run Code Online (Sandbox Code Playgroud)

我发现类似的问题如下:点击这里

但报告错误:

Cannot resolve keyword 'Company_Group' into field. Choices are: brand, brand_id, company, company_id, id
Run Code Online (Sandbox Code Playgroud)

然后我尝试这个方法,也报错:

type object 'Brand' has no attribute 'Company_id'
Run Code Online (Sandbox Code Playgroud)

谢谢安德万斯

zai*_*zil 4

您可以只使用实例中的反向关系Company,例如

company = Company.objects.get(id=company_id)
company.brand_set.all() #this would return all Brand instances
                        #with company instance.
Run Code Online (Sandbox Code Playgroud)