私は最初の 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'
これは、2 番目と 3 番目の引数で生成されます。Djangoのドキュメントから、これを行うことができるはずであり、条件がANDされていることを理解しています。これが私が求めているものです。
または、試してみると:
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])