Django select_related() с последним() ограничением на связанный объект

#django #django-models #django-orm

Вопрос:

Подумайте о том, чтобы иметь Table столик и Reservation столик в моем приложении для ресторана Django.

 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)   

Если я хочу показать список столиков в ресторане с соответствующим бронированием, мне нужно выбрать соответствующее бронирование для каждого столика. но мне нужно выбрать только последнее бронирование каждой таблицы (которое сейчас активно).

Как этого Добиться?

Ответ №1:

Прежде всего, вы должны использовать prefetch_related() не select_related() из-за какого-либо обратного отношения,

Во-вторых, вы могли бы просто использовать orm tableObject.reservations.last() или tableObject.reservations.latest('created_at')