1

どのユーザーがどの画像を気に入ったかを示す次のモデルがあります。

class Image:
    url = ....
    likes = models.ManyToManyField(get_user_model())

このようにして、ユーザーは任意の数の画像を気に入ることができ、複数のユーザーが同じ画像を気に入ることができます。

ここで、画像のセットをクライアントに返したいのですが、現在ログインしているユーザーがどの画像を気に入ったかを示します。そのため、画像のリスト (URL のみを示す) の代わりに、特定のユーザーがそれぞれの画像を気に入ったかどうかを示す、URL とブール値フィールドを含むオブジェクトのリストが必要です。

4

1 に答える 1

1

次のようなものを探していますか

list = [ (img, bool(img.likes.filter(uid=CURRENT_UID))   for   img   in   Image.objects.all() ]

マイレージは異なる場合があります。画像のセットを制限したい場合は、 の代わりに別のフィルターを使用してImage.objects.all()ください。uidユーザー プロパティは、などとは異なる方法で呼び出される場合があります。

または、1.4 以降を使用しているprefetch_related場合は、QuerySet でオプションを使用できます。Django のドキュメントを参照してください

于 2013-05-29T05:41:21.077 に答える