我有这个模型,它告诉我哪些用户喜欢哪些图像:
class Image:
url = ....
likes = models.ManyToManyField(get_user_model())
这样,用户可以喜欢任意数量的图像,并且多个用户可以喜欢同一个图像。
现在我想将图像集返回给客户端,但指出当前登录的用户喜欢其中的哪些。因此,我想要一个带有 URL 和布尔字段的对象列表,而不是图像列表(仅指示 URL),指示特定用户是否喜欢相应的图像。
我有这个模型,它告诉我哪些用户喜欢哪些图像:
class Image:
url = ....
likes = models.ManyToManyField(get_user_model())
这样,用户可以喜欢任意数量的图像,并且多个用户可以喜欢同一个图像。
现在我想将图像集返回给客户端,但指出当前登录的用户喜欢其中的哪些。因此,我想要一个带有 URL 和布尔字段的对象列表,而不是图像列表(仅指示 URL),指示特定用户是否喜欢相应的图像。
你在寻找类似的东西
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 文档。