ManyToManyリレーションからのブール値でクエリセットに注釈を付ける

エリック・アセベド

私がBookこのようなモデルを持っているとしましょう

class Book(models.Model)
    title = models.Charfield(...)
    likes = models.ManyToMany(User, related_name="books_liked")

is_liked現在ログに記録されているユーザーのフィールドでクエリセットに注釈を付ける必要があります。

私はこれをビューに持っていますが、機能していません:

    user = self.request.user
    qs = Book.objects.all().annotate(is_liked=Exists(user.books_liked.all()))
    return qs

だから私はテンプレートでこのようなものを使うことができます

{% for book in books %}
    {% if book.is_liked %}
      ...
    {% endif %}
{% endfor %}

私はこのドキュメントセクションをチェックしていますが、どのように進めるか、またはそれが正しい方法であるかどうかがよくわかりません。

https://docs.djangoproject.com/en/3.1/ref/models/expressions/#exists-subqueries

これどうやってするの?ありがとう。

エリック・アセベド

それを機能させるには、明示的なLikeモデルを作成する必要があります。

class Like(models.Model):
    book = models.ForeignKey(
        Book, on_delete=models.CASCADE,
   )
    user = models.ForeignKey(
        User, on_delete=models.CASCADE,
    )

ManyToMany関係を削除しますBook

次に、これを表示します。

    qs = super().get_queryset()
    user_likes = Like.objects.filter(
        book=OuterRef("pk"),
        user=self.request.user
    )
    return Book.objects.annotate(
        is_liked=Exists(user_likes)
    )

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Djangoは、リレーショナルモデル属性の特定の値でクエリセットに注釈を付けます

分類Dev

Djangoのフィールド値の対数でクエリセットに注釈を付ける

分類Dev

作成からの日数でクエリセットに注釈を付ける方法

分類Dev

サブクエリセットの最大値でクエリセットに注釈を付ける

分類Dev

djangoのリレーションから列フィールドに注釈を付ける

分類Dev

別の「フィルター」クエリセットのオブジェクトでクエリセットに注釈を付ける

分類Dev

関連するモデルからの情報の新しいフィールドでクエリセットに注釈を付ける方法は?

分類Dev

Djangoは、m2mからモデルまでのフィールドごとにクエリセットに注釈を付けます

分類Dev

既存のクエリセットに注釈を付ける方法

分類Dev

サブクエリ内で注釈が付けられたカウントによるDjangoフィルター

分類Dev

Django-サブクエリから複数のフィールドに注釈を付ける

分類Dev

Django-サブクエリから複数のフィールドに注釈を付ける

分類Dev

複数のフィールドを使用してカウントでDjangoクエリセットに注釈を付ける

分類Dev

Djangoクエリセット。1つのクエリでさまざまなフィールドに注釈を付ける

分類Dev

Djangoクエリセット。1つのクエリでさまざまなフィールドに注釈を付ける

分類Dev

DjangoJSONFieldフィルタリングクエリセット。フィルター値は合計値に注釈が付けられます。

分類Dev

カウントにDjangoクエリセットの条件で注釈を付ける方法

分類Dev

Django-クエリ:関連するモデルフィールドでクエリセットに注釈を付ける

分類Dev

Djangoクエリセットは別のモデルから計算された値に注釈を付けます

分類Dev

プリフェッチされたサブクエリの関数でdjangoクエリセットに注釈を付ける方法

分類Dev

プリフェッチされたサブクエリの関数でdjangoクエリセットに注釈を付ける方法

分類Dev

Spring Bootアプリケーションで@Configurationと注釈が付けられたクラスの単体テストケースを作成する方法

分類Dev

Django Arrayfiled:arryafieldの最初のアイテムでクエリセットに注釈を付ける

分類Dev

スクリーンリーダーのフィールドセットに目に見えない形で注釈を付けるための適切なhtml要素/属性は何ですか?

分類Dev

矢印の小道具に注釈を付ける中央のリストをアニメーション化する

分類Dev

リーフレットマップ上の数値変数に注釈を付ける

分類Dev

Django 1.10.7 ORMは、多対多のフィールドにわたる条件付きカウントでクエリに注釈を付けます

分類Dev

一致する関連オブジェクトが存在するかどうかでクエリセットに注釈を付けます

分類Dev

ファセットプロットの1つのセクションに注釈を付ける

Related 関連記事

  1. 1

    Djangoは、リレーショナルモデル属性の特定の値でクエリセットに注釈を付けます

  2. 2

    Djangoのフィールド値の対数でクエリセットに注釈を付ける

  3. 3

    作成からの日数でクエリセットに注釈を付ける方法

  4. 4

    サブクエリセットの最大値でクエリセットに注釈を付ける

  5. 5

    djangoのリレーションから列フィールドに注釈を付ける

  6. 6

    別の「フィルター」クエリセットのオブジェクトでクエリセットに注釈を付ける

  7. 7

    関連するモデルからの情報の新しいフィールドでクエリセットに注釈を付ける方法は?

  8. 8

    Djangoは、m2mからモデルまでのフィールドごとにクエリセットに注釈を付けます

  9. 9

    既存のクエリセットに注釈を付ける方法

  10. 10

    サブクエリ内で注釈が付けられたカウントによるDjangoフィルター

  11. 11

    Django-サブクエリから複数のフィールドに注釈を付ける

  12. 12

    Django-サブクエリから複数のフィールドに注釈を付ける

  13. 13

    複数のフィールドを使用してカウントでDjangoクエリセットに注釈を付ける

  14. 14

    Djangoクエリセット。1つのクエリでさまざまなフィールドに注釈を付ける

  15. 15

    Djangoクエリセット。1つのクエリでさまざまなフィールドに注釈を付ける

  16. 16

    DjangoJSONFieldフィルタリングクエリセット。フィルター値は合計値に注釈が付けられます。

  17. 17

    カウントにDjangoクエリセットの条件で注釈を付ける方法

  18. 18

    Django-クエリ:関連するモデルフィールドでクエリセットに注釈を付ける

  19. 19

    Djangoクエリセットは別のモデルから計算された値に注釈を付けます

  20. 20

    プリフェッチされたサブクエリの関数でdjangoクエリセットに注釈を付ける方法

  21. 21

    プリフェッチされたサブクエリの関数でdjangoクエリセットに注釈を付ける方法

  22. 22

    Spring Bootアプリケーションで@Configurationと注釈が付けられたクラスの単体テストケースを作成する方法

  23. 23

    Django Arrayfiled:arryafieldの最初のアイテムでクエリセットに注釈を付ける

  24. 24

    スクリーンリーダーのフィールドセットに目に見えない形で注釈を付けるための適切なhtml要素/属性は何ですか?

  25. 25

    矢印の小道具に注釈を付ける中央のリストをアニメーション化する

  26. 26

    リーフレットマップ上の数値変数に注釈を付ける

  27. 27

    Django 1.10.7 ORMは、多対多のフィールドにわたる条件付きカウントでクエリに注釈を付けます

  28. 28

    一致する関連オブジェクトが存在するかどうかでクエリセットに注釈を付けます

  29. 29

    ファセットプロットの1つのセクションに注釈を付ける

ホットタグ

アーカイブ