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, и действовать соответствующим образом.