我正在开发我的第一个 Python/Django 应用程序并遇到以下问题:
我的应用程序维护一个使用Calendar
模型类和CalendarDay
模型类实现的预订日历。在预订时,我想查询以下CalendarDay
实例:
dates = CalendarDay.objects.filter(calendar = booking.calendar, calendar_date >= booking.arrival_date, calendar_date <= booking.departure_date)
这'SyntaxError: non-keyword arg after keyword arg'
会在第二个和第三个参数上生成。从 Django 文档中,我了解到您应该能够做到这一点,并且条件是 AND-ed,这就是我所追求的。
或者,当我尝试时:
dates = CalendarDay.objects.filter(calendar = booking.calendar, calendar_date__ge = booking.arrival_date, calendar_date__le = booking.departure_date)
我FieldError: Join on field 'calendar_date' not permitted
从 Django 得到一个。
我已经完成了 Django 文档,但是 - 显然 - 我遗漏了一些东西。我究竟做错了什么?
编辑:
我最终得到了以下解决方案:
dates = CalendarDay.objects.filter(calendar = booking.calendar, calendar_date__range = [self.arrival_date, self.departure_date])