어떻게하면 장고 뷰에서이 MySQL 스크립트와 동등한 결과를 얻을 수 있습니까? depart_city, arrive_city 및 travel_date는 사용자가 입력합니다.Django MySQL 쿼리를 Django로 변환하기 쿼리
은 여기 내 모델
class Driver(models.Model):
first_name = models.CharField(max_length=30, null=True, blank=False)
last_name = models.CharField(max_length=30, null=True, blank=False)
class Schedule(models.Model):
depart_time = models.TimeField()
arrive_time = models.TimeField()
class TravelDate(models.Model):
start_date = models.DateField(null = True)
interval = models.IntegerField(null = True)
class Route(models.Model):
depart_city = models.CharField(max_length=50, null=True, blank=False)
arrive_city = models.CharField(max_length=50, null=True, blank=False)
driver = models.ForeignKey(Driver)
schedule = models.ForeignKey(Schedule)
traveldate = models.ForeignKey(TravelDate)
여기 내 MySQL의 스크립트입니다
이다. 내가 MySQL의 워크 벤치에서 실행할 때 작동하지만 나는 기본적으로 MySQL의 DATEDIFF를 지원하지 않습니다 장고 쿼리SELECT busapp_route.depart_city, busapp_route.arrive_city, busapp_driver.first_name, busapp_schedule.depart_time
FROM (((busapp_route INNER JOIN busapp_driver ON busapp_route.driver_id = busapp_driver.id)
INNER JOIN busapp_schedule ON busapp_route.schedule_id = busapp_schedule.id)
INNER JOIN busapp_traveldate ON busapp_route.traveldate_id = busapp_traveldate.id)
WHERE busapp_route.depart_city='Tropoje' AND busapp_route.arrive_city='Tirane'
AND (DATEDIFF('2017-11-26', busapp_traveldate.start_date) % busapp_traveldate.interval = 0);
달성하려는 목표는 무엇입니까? 데이터 가져 오기만 하시겠습니까? 앱을 다시 빌드 하시겠습니까? Django의 강점 중 하나 인 Django ORM은 훨씬 더 많은 작업을 수행합니다. – normic
기본적으로 장고에서 이벤트를 반복하기 위해 노력하고 있습니다. 저는 운전자가 스스로 등록하고 A -> B, 출발 시간, 도착 시간, 그리고 그들이 얼마나 자주이 경로를하는지 (매일, 매일, 매 3 일마다 ...) 웹 사이트를 구축하고 있습니다. 사용자가 특정 날짜에 A -> B 도시에서 버스를 검색하면 해당 날짜에 실행되는 버스를 표시하지 않습니다. – Florian
당신이 맞다면, 한 도시에서 다른 도시로가는 버스 경로를 유지하는 앱을 만들고있는 것일까 요? 아니면 지역 대중 교통에 대해 이야기하고 있습니까? 후자의 경우에는 평일을 정의 할 수 있기 때문에 상황이 매우 쉬울 수도 있습니다. – normic