【问题标题】:Many-to-many relations request to DataBase对数据库的多对多关系请求
【发布时间】:2017-10-16 16:54:24
【问题描述】:

我有下一个模型:

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 过滤颜色?

【问题讨论】:

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


    【解决方案1】:

    我不确定您要什么,但如果您想按 ColorSet 模型过滤颜色,您可以使用Color.objects.filter(colorset__id=1),或者如果您想按颜色模型过滤 ColorSet,您可以使用ColorSet.objects.filter(color_set__id=1),告诉我是不是这样你想要什么。

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

    【讨论】:

    • 我知道 ColorSet 的 id,其中包含颜色。我需要所有颜色。
    • 非常感谢!
    【解决方案2】:

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

    这将为您提供与 ColorSet 相关的 Color 对象列表

    【讨论】:

      猜你喜欢
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 2011-07-30
      • 2012-12-26
      相关资源
      最近更新 更多