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_relatedQuerySet 上的选项,请参阅此处的 Django 文档。

于 2013-05-29T05:41:21.077 回答