1. ホーム
  2. django

[解決済み] 同じモデル内の 2 つの日付フィールドを比較する Django のクエリセットフィルタを作成する方法

2023-03-17 09:55:50

質問

Solr IndexでActivityのレコードが古くなっているクエリを取得しようとしています。 私は Activity.updated の日付が Activity.added_toSolr_date よりも大きくなります。

stale_activities_queryset = Activity.objects.filter(updated__gte = self.added_toSolr_date) 

モデル

class Activity(models.Model):
    # Last time entry / metric was updated in the Activity model database
    updated =  models.DateTimeField( verbose_name="CRUD date")
    # When it was added to Solr Index Date
    added_toSolr_date = models.DateTimeField(blank=True, null=True, verbose_name="Added to Solr Index Date")

Django Queryのドキュメントを参考にしました。 https://docs.djangoproject.com/en/1.4/ref/models/querysets/ そして、サンプルのユニットテスト。 https://github.com/django/django/blob/master/tests/modeltests/or_lookups/tests.py

Stackoverflowのここも検索してみました。 すべての例では、同じモデル内の2つの日付フィールドを比較する代わりに、入力された日付を使用しています。

どのように解決するのですか?

Fオブジェクト。

from django.db.models import F
stale_activities = Activity.objects.filter(updated__gte=F('added_toSolr_date'))