2010-09-08 52 views
0

我怎麼能只有至少有一個「職位」相關的類別??,希望它是有道理的!?Django模型過濾器,取決於關係

**models.py** 
class Category(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) 

    def __unicode__(self): 
     return self.name 

**view.py:** 
def index(request): 
    categories = category.objects.filter(???) 

我只有在有至少一個「郵報」的相關??,類別怎能希望這是有道理的!?

回答

0
categories = Category.objects.exclude(post=None) 
+0

我得到了這個工作!謝謝... – pkdkk 2010-09-08 21:02:12

0

models.py

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

    def __unicode__(self): 
     return self.name 

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

    def __unicode__(self): 
     return self.name 

views.py

def index(request): 
    categories = Category.objects.filter(post__isnull=False) 

每個FOREIGNKEY具有反向關係到其父模型,因此必須YPU一個ForeignKey的地方張貼你的模型和post__isnull =假將只返回與某些帖子有反向關係的類別...

+0

Ups-我的壞-class郵報(models.Model): 名= models.CharField(MAX_LENGTH = 50) 類別= models.ManyToManyField(類別) 高清__unicode __(個體經營): 回報self.name – pkdkk 2010-09-08 15:30:28

+0

A「帖子「可以有多個相關的類別! – pkdkk 2010-09-08 15:32:35