Djangoフィルタでは、論理的に次のように表現しています。私は「イベント」のモデルを持っている、とのように表すことができる場所のモデル、:指定した場所については今日のDjangoフィルタイベントが発生しました
class Location(models.Model):
name = models.CharField(max_length=255)
class Event(models.Model):
start_date = models.DateTimeField()
end_date = models.DateTimeField()
location = models.ForeignKeyField(Location)
objects = EventManager()
は、私が今日発生したすべてのイベントを選択します。私はEventManagerの「bookings_today」メソッドを経由して様々な戦略を試してみたが、右フィルタの構文は、私を見逃さ:これは回をゼロとして
class EventManager(models.Manager):
def bookings_today(self, location_id):
bookings = self.filter(location=location_id, start=?, end=?)
日付()は失敗し、日中の時間がために重要ですアプリは、同じものが日付の最小値と最大値になり、それらをブックエンドとして使用します。また、複数の可能な有効な構成があります。
start_date < today, end_date during today
start_date during today, end_date during today
start_date during today, end_date after today
私はさまざまなオプションのセット全体をコーディングする必要があるか、よりシンプルかつエレガントな方法はありますか?
SQL BETWEENのための範囲演算子を見ては@danielrosemanでも、この答えを参照してください。http://stackoverflow.com/questions/3963201/どのように2つの日付を選択してください - djangoと –