【问题标题】:Django select_related() with latest() limit on related objectDjango select_related() 与相关对象的 latest() 限制
【发布时间】:2021-12-31 08:31:47
【问题描述】:

考虑在我的餐厅 Django APP 中有 Table 表和 Reservation 表。

class Reservation(models.Model):

    table = models.ForeignKey(
        Table,
        on_delete=models.CASCADE,
        blank=False,null=False,
        related_name='reservations'
    )

    def __str__(self):
        return str(self.pk)

class Table(models.Model):

    def __str__(self):
        return str(self.pk)

如果我想显示带有相应预订的餐厅表列表,那么我需要为每张表选择相关预订。但我只需要选择与每张桌子的最后预订相关的(现在是活动的)。

如何做到这一点?

【问题讨论】:

    标签: django django-models django-orm


    【解决方案1】:

    首先你应该使用prefetch_related()而不是select_related(),因为oneToMany反向关系,

    其次,您可以简单地使用 orm tableObject.reservations.last()tableObject.reservations.latest('created_at')

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 2019-07-11
      • 2011-12-27
      • 2019-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      相关资源
      最近更新 更多