-1

クエリセットの DateField と TimeField を現在の日付と比較したいと考えています。何時間も探しましたが、何も見つかりませんでした。Q/F-Object で多くのことを試しましたが、解決策もありませんでした。そして今、私はここにいて、誰かがこれを解決する方法を知っていることを願っています:)-ところで。日付と時刻に分割するのは私のせいではなく、それを DateTimeField に変更する方法はありません (他のプロジェクトでの依存関係が多すぎます)。

class Model(models.Model):
    date = models.DateField()
    time = models.TimeField()

MySQL では次のようにします:
SELECT * FROM app_model WHERE CAST(CONCAT(CAST(date as CHAR),' ',CAST(time as CHAR)) as DATETIME) >= NOW()

ご提案ありがとうございます。

4

1 に答える 1

0

or'd queryset 制約 (Q オブジェクト) を使用してこれを行うことができます。

now = datetime.datetime.now()
future_models = Model.objects.filter(Q(date__gt=now.date()) | (Q(date=now.date()) & Q(time__gte=now.time())))

これにより、日付が今日を過ぎたすべてのインスタンスと、日付が今日で時刻が現在時刻以上のすべてのインスタンスが選択されます。

于 2013-08-15T22:00:48.680 に答える