Djangoクエリセット-最後の関連オブジェクトを取得し、そのデータでフィルタリングします

マーク

私は2つのDjangoモデルを持っています:

class Person(models.Model):
    unique_id = models.CharField()

class PersonData(models.Model):
    person = models.ForeignKey('Person')
    phone = models.CharField()
    email = models.CharField()
    date = models.DateTimeField()

PersonData情報が変更されると新しいオブジェクトが追加されますが、古いオブジェクトは保持されます。次に、PersonData関連する最新のオブジェクトからのデータで人をフィルタリングするフィルターが必要です。

私は次のクエリセットを持っています:

filter_email = "[email protected]"
filter_phone = "964477425"

qs = Person.objects.all()

if filter_email:
    qs = qs.filter(persondata__email__icontains=filter_email)
if filter_phone:
    qs = qs.filter(persondata__phone__icontains=filter_phone)

ただし、そのフィルターは、にPersonData関連付けられているすべてのオブジェクトを検索しますPersonこのフィルターを最新のPersonDataオブジェクトのみに制限することは可能ですか?

Saurabh Goyal

これは、1つのフィールドの一意の値に対する最新/最も古いエントリが必要な一般的なタイプのクエリです。

他の答えが何を示唆しているのかを深く考えれば、それらが目的を果たさないことが理解できると思います。

whole object単一のdjangoクエリ(Note that it is possible to get one field but not all fields, also it is possible to fetch all fields in raw **sql** queriesで目的のフィルターを使用してフェッチする方法はありません

この問題に取り組むために私が知っている方法の1つは、Person最新のPersonDataオブジェクトに外部キーを入れ、の新しいオブジェクトPersonDataが作成されるたびにそれを更新することです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Django RestFrameworkで関連オブジェクトのデータをフィルタリングする

分類Dev

関連フィールドの最初のインスタンスの値でDjangoクエリセットをフィルタリングします

分類Dev

Django:連続したクエリセットフィルタリングは最初のクエリ後にフィルタリングを停止します

分類Dev

datetimeオブジェクトを使用してDjangoのクエリセットをフィルタリングします(日数に切り捨てます)

分類Dev

外部キーdjangoでオブジェクトクエリセットをフィルタリングする

分類Dev

別のオブジェクトのキーをフィルタリングして関連する値を取得し、その値に対してウォッチを使用するには、配列に対して ng を繰り返します

分類Dev

Djangoクエリセット-集計前に関連するテーブルオブジェクトをフィルタリングする

分類Dev

関連オブジェクトのデータのフィルタリング

分類Dev

オブジェクトキーのサブセットの配列をフィルタリングします

分類Dev

Djangoテンプレートでクエリセットの最初のオブジェクトを取得します

分類Dev

Django-子オブジェクトでクエリセットをフィルタリングする(ForeignKey)

分類Dev

データ属性でオブジェクトをフィルタリングし、使用するたびにフィルターをリセットします

分類Dev

django-オブジェクトのリストをフィルタリングしてオブジェクトのリストを取得します

分類Dev

クエリセットフィルター:各オブジェクトのリストとしてmanytomanyフィールドを取得します

分類Dev

Django-関連する名前で2回フィルタリングすると、クエリセット内のオブジェクトが重複します

分類Dev

オブジェクトのセットの値でオブジェクトのリストをフィルタリングします

分類Dev

Java 8ストリームは、マップをフィルタリングした後に元のオブジェクトを取得します

分類Dev

紺碧のオブジェクトをループし、タグでフィルタリングします

分類Dev

Djangoはクエリセットを取得し、独自のクエリセットアイテムでフィルタリングします

分類Dev

オブジェクトデータをフィルタリングし、reactnativeで複数のオブジェクトに分割します

分類Dev

オブジェクトを使用したクエリセットのフィルタリング

分類Dev

Django ORM:関連オブジェクトをフィルタリングしますか?

分類Dev

オブジェクトのオブジェクトをフィルタリングし、JavaScript で最後の 7 つのオブジェクトを使用して新しい配列を作成します

分類Dev

GETリクエストで関連フィールドのオブジェクトを取得します。それ以外の場合は、POST、PUT、DELETEなどでオブジェクトのIDのみを使用します。

分類Dev

オブジェクトの特定のレベルでフィルタリングを実行できる関数を考え出そうとしています

分類Dev

jqは特定の値でオブジェクトをフィルタリングし、親オブジェクトのIDを取得します

分類Dev

Djangoのフィールドとして追加のフィルタリングされた関連オブジェクトを使用して結果を取得するにはどうすればよいですか?

分類Dev

オブジェクトの配列をフィルタリングして、最後にフィルタリングされてから追加されたオブジェクトのみを表示するための最良の方法は何ですか?

分類Dev

@propertyのフィールドのリストから関連オブジェクトの値を取得します

Related 関連記事

  1. 1

    Django RestFrameworkで関連オブジェクトのデータをフィルタリングする

  2. 2

    関連フィールドの最初のインスタンスの値でDjangoクエリセットをフィルタリングします

  3. 3

    Django:連続したクエリセットフィルタリングは最初のクエリ後にフィルタリングを停止します

  4. 4

    datetimeオブジェクトを使用してDjangoのクエリセットをフィルタリングします(日数に切り捨てます)

  5. 5

    外部キーdjangoでオブジェクトクエリセットをフィルタリングする

  6. 6

    別のオブジェクトのキーをフィルタリングして関連する値を取得し、その値に対してウォッチを使用するには、配列に対して ng を繰り返します

  7. 7

    Djangoクエリセット-集計前に関連するテーブルオブジェクトをフィルタリングする

  8. 8

    関連オブジェクトのデータのフィルタリング

  9. 9

    オブジェクトキーのサブセットの配列をフィルタリングします

  10. 10

    Djangoテンプレートでクエリセットの最初のオブジェクトを取得します

  11. 11

    Django-子オブジェクトでクエリセットをフィルタリングする(ForeignKey)

  12. 12

    データ属性でオブジェクトをフィルタリングし、使用するたびにフィルターをリセットします

  13. 13

    django-オブジェクトのリストをフィルタリングしてオブジェクトのリストを取得します

  14. 14

    クエリセットフィルター:各オブジェクトのリストとしてmanytomanyフィールドを取得します

  15. 15

    Django-関連する名前で2回フィルタリングすると、クエリセット内のオブジェクトが重複します

  16. 16

    オブジェクトのセットの値でオブジェクトのリストをフィルタリングします

  17. 17

    Java 8ストリームは、マップをフィルタリングした後に元のオブジェクトを取得します

  18. 18

    紺碧のオブジェクトをループし、タグでフィルタリングします

  19. 19

    Djangoはクエリセットを取得し、独自のクエリセットアイテムでフィルタリングします

  20. 20

    オブジェクトデータをフィルタリングし、reactnativeで複数のオブジェクトに分割します

  21. 21

    オブジェクトを使用したクエリセットのフィルタリング

  22. 22

    Django ORM:関連オブジェクトをフィルタリングしますか?

  23. 23

    オブジェクトのオブジェクトをフィルタリングし、JavaScript で最後の 7 つのオブジェクトを使用して新しい配列を作成します

  24. 24

    GETリクエストで関連フィールドのオブジェクトを取得します。それ以外の場合は、POST、PUT、DELETEなどでオブジェクトのIDのみを使用します。

  25. 25

    オブジェクトの特定のレベルでフィルタリングを実行できる関数を考え出そうとしています

  26. 26

    jqは特定の値でオブジェクトをフィルタリングし、親オブジェクトのIDを取得します

  27. 27

    Djangoのフィールドとして追加のフィルタリングされた関連オブジェクトを使用して結果を取得するにはどうすればよいですか?

  28. 28

    オブジェクトの配列をフィルタリングして、最後にフィルタリングされてから追加されたオブジェクトのみを表示するための最良の方法は何ですか?

  29. 29

    @propertyのフィールドのリストから関連オブジェクトの値を取得します

ホットタグ

アーカイブ