2013-01-09 304 views
0

如果我有这些模型:过滤Django的查询集

COLOR_OPTIONS = (
    ('BLA', 'Black'), 
    ('WHI', 'White'), 
    ('RED', 'Red'), 
) 

class Stuff(models.Model): 
    text = models.CharField(max_length=20) 

class Thing(models.Model): 
    stuff = models.ForeignKey(Stuff) 
    color = models.CharField(max_length=3, choices=COLOR_OPTIONS) 

如何使用.filter()根据不同类型的东西,或者不同的颜色来过滤不同Things


如何编写我的视图以便我可以筛选所有各种颜色选项以及所有不同的东西选项?这是我的意思,但我不知道如何正确书写功能..

def filter(request): 
    filter_color = Thing.objects.filter(color=COLOR_OPTIONS) 
    filter_stuff = Thing.objects.filter(stuff=???) 

任何想法赞赏。

回答

0
my_things_based_on_stuff = Thing.objects.filter(stuff__text="some text here") 

my_things_based_on_colors = Thing.objects.filter(color='BLA') 
+0

谢谢你的答案,但我希望它是动态的,这样我就可以编写一个视图来过滤所有不同的颜色选项或不同的东西选项。任何想法来帮助我? –

+0

您是否在寻找'Thing.objects.filter(color = COLOR_OPTIONS,stuff__text =“这里有些文字”)? – arie

+0

@NickB只是用你的变量替换'BLA'和'一些文本' – YardenST