2010-09-13 5 views
6

models.pyDjango verschiedene

class Category(models.Model): 
    name = models.CharField(max_length=50) 

    def __unicode__(self): 
     return self.name 

class Gender(models.Model): 
    name = models.CharField(max_length=50) 

    def __unicode__(self): 
     return self.name 

class Post(models.Model): 
    name = models.CharField(max_length=50) 
    categories = models.ManyToManyField(Category) 
    genders = models.ManyToManyField(Gender) 

    def __unicode__(self): 
     return self.name 

view.py wählen:

def index(request): 
    posts = Post.objects.filter(genders=1) 

    categories = Category.objects.filter(post__genders=1) 
           .exclude(post=None).order_by('-sort') 

Warum gibt es bekomme ich die gleiche Kategorie 3 mal wenn 3 Beiträge in dem Geschlecht gleich 1 ?? Ich brauche nur die Kategorie 1 mal ich wähle wie "Select distinct" - wie kann ich das tun ??

Antwort

15

Haben Sie versucht, eine .distinct() an das Abfrage-Set anzuhängen?

categories = Category.objects.filter(post__genders=1).exclude(post= 
     None).order_by('-sort').distinct() 
+0

Vielen Dank! : D ... so einfach;) – pkdkk

Verwandte Themen