我有这个模型告诉我哪些用户喜欢哪些图片:
class Image:
url = ....
likes = models.ManyToManyField(get_user_model())
这样,用户可以喜欢任意数量的图像,而多个用户可以喜欢相同的图像。
现在我想将图像集返回给客户端,但是指出当前登录用户喜欢哪些图像。因此,我没有图像列表(只能指示URL),而是需要一个带有URL和布尔字段的对象列表,指示特定用户是否喜欢相应的图像。
答案 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。