make query返回相关查询

时间:2013-05-29 04:03:23

标签: django django-models

我有这个模型告诉我哪些用户喜欢哪些图片:

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

这样,用户可以喜欢任意数量的图像,而多个用户可以喜欢相同的图像。

现在我想将图像集返回给客户端,但是指出当前登录用户喜欢哪些图像。因此,我没有图像列表(只能指示URL),而是需要一个带有URL和布尔字段的对象列表,指示特定用户是否喜欢相应的图像。

1 个答案:

答案 0 :(得分:1)

你在寻找像

这样的东西吗?
list = [ (img, bool(img.likes.filter(uid=CURRENT_UID))   for   img   in   Image.objects.all() ]

您的milage可能会有所不同:如果您想限制图像集,请使用其他过滤器而不是Image.objects.all()。您的用户属性可能与uid

的调用方式不同

或者,如果您使用1.4或更高版本,则可以使用QuerySet上的prefetch_related选项,查看其上的Django文档here

相关问题