2011-10-04 3 views
0

Je dois deux modèles:django deux filtre Modèle

class ModelA(models.Model): 
    field1=models.CharField(max_length=50) 
    field2=models.CharField(max_length=50) 
class ModelB(model.Model): 
    field3=models.ForeignKey(ModelA) 
    field4=Models.CharField(max_length=50) 

Je veux obtenir modela pas ModelB pour résultat modela queryset? Comment le faire? Pense!

Répondre

2
ModelA.objects.filter(modelb__isnull=True) 

Devrait fonctionner.

+0

cela fonctionne-t-il réellement sur la table puisque dans le modèle ORM ModelA n'a pas de référence à ModelB. Pas argumentatif, je me demandais juste. – myusuf3

+0

Sous le capot, Django fera une jointure externe gauche. Vous pouvez voir la requête sql en faisant 'print ModelA.objects.filter (modelb__isnull = True) .query' – Alasdair

+0

Merci @alasdair! – Kollin