我的工作我的第一個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