【问题标题】:Django ORM lookup syntaxDjango ORM 查找语法
【发布时间】:2021-02-17 13:13:54
【问题描述】:

我有一个模型水果,水果有果园。

class Fruit():

  orchards = models.ManyToManyField('Orchard', blank=True)

每个果园都属于一个农场:

class Orchard():
  farm = models.ForeignKey('Farm', verbose_name='Farm', null=True, blank=True, on_delete=models.PROTECT)

每一颗果实都是一株幼苗

class Seedling():
   fruit = models.ForeignKey('Fruit', editable=False, on_delete=models.CASCADE)

这是我的尝试:

queryset = Seedling.objects.all().filter(fruit__orchards__in__farm=farm_id)

这给我一个错误django.core.exceptions.FieldError: Related Field got invalid lookup: in 任何人都可以清除我的查询?非常感谢

【问题讨论】:

    标签: python django django-models django-rest-framework django-orm


    【解决方案1】:

    你过滤:

    queryset = Seedling.objects.filter(<b>fruit__orchards__farm=farm_id</b>)

    所以没有__in lookup [Django]。如果您过滤 一对多 关系或 多对多 关系,则您过滤 existentially 在其中一个相关的元素。

    【讨论】:

    • 谢谢,就是这样。如此简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2016-10-31
    • 2020-12-03
    • 1970-01-01
    相关资源
    最近更新 更多