2017-10-16 80 views
0

我旁边型号:许多一对多关系请求数据库

class Color(models.Model): 
    color = models.CharField(max_length=50, verbose_name='Color') 
    code = models.CharField(max_length=50, verbose_name='Code of color') 

class ColorSet(models.Model): 
    name = models.CharField(max_length=50, verbose_name='Name of set') 
    color_set = models.ManyToManyField(Color) 

我怎样才能过滤颜色由color_set_ID的看法?如果您想获得有在ColorSet物体颜色

回答

2

Color对象的我不知道你有什么要求,但如果你想通过ColorSet模型筛选颜色可以使用Color.objects.filter(colorset__id=1)或者如果你想过滤的颜色等颜色模型,你可以使用ColorSet.objects.filter(color_set__id=1),告诉我,如果这是你想要的。

如果你需要所有的颜色,你可以使用ColorSet.objects.get(id=1).color_set.all(),当然你需要得到一个colorset对象来获取该对象的Color.objects.get(id=1).color_set_set.all()与另一个模型包含颜色的所有元素,或

+0

我知道ColorSet的ID, 。我需要所有颜色。 –

+0

@JustSnake查看我的编辑 –

+0

非常感谢! –

0

,你可以简单地通过 obj = ColorSet.objects.get(id=<the id>) 得到ColorSet对象,然后您将通过 obj.color_set

获得在ColorSet所有的颜色,这将让你列表与该ColorSet