多对多关系请求DataBase

时间:2017-10-16 16:54:24

标签: django python-3.x django-models django-views

我有下一个型号:

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获取过滤后的颜色?

2 个答案:

答案 0 :(得分:2)

我不确定你要求的是什么,但是如果你想用ColorSet模型过滤Color,你可以使用Color.objects.filter(colorset__id=1),或者你想要使用Color模型过滤ColorSet你可以使用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()使用另一个模型

答案 1 :(得分:0)

如果你想要ColorSet对象中的颜色,你可以简单地通过ColorSet对象获取 obj = ColorSet.objects.get(id=<the id>) 然后你将获得ColorSet中的所有颜色 obj.color_set

这会为您提供与Color

相关的ColorSet对象列表