2017-07-23 1 views
1

Je modèles avec champ ManyToMany:Django many-to-many: comment obtenir l'ID

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="") 

Je veux filtrer l'id de marques en contenant "company_instance"

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 

I ont trouvé le problème similaire comme suit: click here

mais des erreurs: Signaler

Cannot resolve keyword 'Company_Group' into field. Choices are: brand, brand_id, company, company_id, id 

alors j'essaie de cette façon, rendre compte également des erreurs:

type object 'Brand' has no attribute 'Company_id' 

Merci andvance

Répondre

1

Vous pouvez simplement utiliser la relation inverse de Company exemple comme,

company = Company.objects.get(id=company_id) 
company.brand_set.all() #this would return all Brand instances 
         #with company instance. 
+0

cela fonctionne ~ grâce un lot –

+0

Appréciez le soutien, l'homme !! – zaidfazil

+0

avec moins de 15 Réputation, je ne peux que cliquer pour annuler l'acceptation de cette réponse, merci ~ –