我的工作我的第一个Python/Django应用程序,冲进以下问题:语法错误:关键字ARG后非关键字ARG
我的应用程序保持与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)
我从Django的一个FieldError: Join on field 'calendar_date' not permitted
。
我已经通过Django文档工作,但是-apparently-我错过了一些东西。我究竟做错了什么?
编辑:
我结束了以下解决方案:比
dates = CalendarDay.objects.filter(calendar = booking.calendar, calendar_date__range = [self.arrival_date, self.departure_date])
哪里Django文档状态,首先语法是有效的?因为这对我来说似乎不太可能。如果两个变量都是已知的,则语法'calendar_date> = booking.arrival_data'最终评估为'True'或'False',因此您将一个布尔值传递给没有关键字的函数。 – KillianDS
@KillianDS:是的,你说得对。我重读了这些文档,但并没有... – Roger