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

У меня есть несколько моделей, но сейчас я хочу сосредоточиться на двух:

class Client(models.Model):
    first_name
    last_name
    car # Client's car to be serviced


class Service(models.Model):
   service_name 
   service_type
   service_date
   client = models.OneToOneField(Client, on_delete=models.CASCADE, verbose_name="Client served")
   
   def __str__():
       return f"Client {self.client} was serviced at {self.service.date}"

Я хочу показать данные всех клиентов в виде таблицы...

first_name Last_name Car (make/model) Serviced? Service date
John Watson Toyota Auris Yes 2023-02-01
Bob Kilicki Toyota Corolla Yes 2023-02-01
Mark Smith Honda Civic No --------
David Bobson VW Polo Yes 2023-02-03
Andrew Hutchinson Renault Clio No --------

(...)

Но мне нужна дополнительная информация, обслуживался ли клиент (автомобиль обслуживался), если да - то когда (дата)?

Как я могу сделать это из файла views.py?

Следует ли мне сделать еще одно поле в модели клиента - например, булево поле, содержащее информацию - клиент обслужен: True или False?

Лучше построить более продвинутый запрос, который будет извлекать данные из обеих моделей, но как?

Если это обычная проблема в Django, пожалуйста, укажите мне правильное направление (в Django Docs). Не знаю точно, какие термины я должен использовать... Конечно, любой пример тоже приветствуется.

Я думаю, что вы должны добавить поля в Service, например, BooleanField, которое будет говорить, была ли услуга оказана или нет, и другое поле для получения даты, когда услуга была оказана:

class Service(models.Model):
   done = models.BooleanField(defalut=False)
   done_date = models.DateField()

тогда в шаблоне можно проверить, была ли выполнена услуга благодаря языку шаблонов Django, и действовать соответствующим образом.

Вернуться на верх