Как реализовать необработанный sql-запрос в DRF с параметрами
Привет всем я пытаюсь реализовать raw sql запрос для создания api в django framework и входные параметры это team_id, start_date и end_date. например team_id=1 и start=2022-04-25 и end_date=2022-05-01, и temp1 query date например 7 дат от 2022-04-25 до 2022-05-01. как это сделать, пожалуйста, помогите мне.
models.py
class Car_dash_daily(models.Model):
created_at = TimestampField(null=True, blank=True, auto_now_add=True)
car_number = models.CharField(max_length=80, null=True, blank=True)
date = models.DateField(null=True, blank=True)
car_status = EnumField(choices=['DRIVEN', 'INSURANCE', 'ND', 'REPAIR', 'SERVICE', 'BREAKDOWN', 'ACTIVE', 'B2B', 'PARKING'], default=None)
trips = models.IntegerField(null=True, blank=True)
online_hours = models.CharField(max_length=10, null=True, blank=True)
revenue = models.FloatField(max_length=10, null=True, blank=True)
status = EnumField(choices=['STICKERING', 'CALL_FOR_GPS','SERVICING'], default=None)
team = models.ForeignKey(
Team,
models.CASCADE,
verbose_name='Team',
null=True,
)
car = models.ForeignKey(
Car,
models.CASCADE,
verbose_name='Car',
null=True,
blank=True
)
city = models.ForeignKey(
City,
models.CASCADE,
verbose_name='City',
null=True,
)
driver = models.ForeignKey(
Driver,
models.CASCADE,
verbose_name='Driver',
null=True,
blank=True
)
sql запрос-
Вы можете использовать функцию raw() для добавления необработанных SQL-запросов.
Person.objects.raw('SELECT id, first_name, last_name, birth_date FROM myapp_person')
У меня была конкретная проблема, связанная с этим, когда я не мог использовать Django ORM в зависимости от сложности запроса. Проблема не связана с самим Django ORM, скорее с отсутствием глубоких знаний в отношении перевода сложного необработанного SQL запроса в Django ORM. В спешке это лучший и самый быстрый способ.