2012-02-29 10 views
0

Djangoモデルを使用すると、特定の日付以降に作成されたすべてのレコードを選択するためのフィルタはありますか?私はlast_loginよりも新しいレコードを取得するためにどのような構文やフィルタを使うべきかわかりません。最後のログイン以降に作成されたDjangoレコードをすべて取得します

私はQの高度なクエリでそれをやっても構いませんが、より簡単な方が良いでしょう!あなたがこれを行うことができます

答えて

2

実際に、作成されたすべてのレコードを選択する場合は、現在の日時は必要ありません特定の日付の後に。 field_date__gte = last_loginのようなルックアップを持つフィルタを使用するだけです。ここで範囲を使用する必要はありません。例:

MyModel.objects.filter(my_model_date__gte=last_login) 
+0

ありがとう、これは私が必要としていたものです。あなたが使用したフィールド検索を見つけるためにちょっと検索しなければなりませんでした(私はまだDjangoの初心者です)。誰かが必要とする場合は、ここでドキュメントを見つけました:https://docs.djangoproject.com/en/dev/ref/models/クエリーセット/#gte –

1

最初に、ユーザーlast_loginを取得する:あなたはこのようにしたいと

last_login = user.last_login 

あなたはあなたのデータをフィルタリングすることができます

Entry.objects.filter(pub_date__range=(last_login, datetime.datetime.now())) 

はそれが役に立てば幸い。 ..

+0

返信ありがとうございます!このソリューションはすごく効果的ですが、より単純な実装のためのもう一つの答えを受け入れました。 –

+0

もう一つの答えは短いですが、最後のログイン日を含める必要がある場合はあなたのニーズに合っていません...私はlast_loginより大きい日付のエントリしか探しません...部分としてlast_loginは含まれていませんresult。 – pahko

+0

"gte"ルックアップはlast_loginの値以上の値を選択します –

関連する問題