如何标记每个收藏的商品?

时间:2014-03-29 00:57:47

标签: python django django-models

我有一个网站,用户可以将图片“保存”到相册中。它们与ManyToMany IE相关:

class Image(models.Model):
    album = models.ManyToManyField('Album', blank=True, null=True)

class Album(models.Model):
    name = models.CharField(max_length=64)
    user = models.ForeignKey(User)

我可以轻松显示用户曾保存的所有图像的列表。但是有一个单独的页面,用户可以在其中发现新图像。

如何隐藏该页面中所有现有的已保存图像?是否有查询来获取该用户保存的图像列表中的所有最新图像?

另外,如果我将它们全部拉出来,我可以轻松地为这些属性添加属性,以便它们在页面上看起来不同吗?在Pinterest上的IE如果您之前已经收藏了一张图片,那么Heart就会被涂上颜色。

我发现了这篇文章,但我不理解Ruby中给出的代码示例:How to 'hide-users' in application

我知道我可以创建一个很大的ID列表并说出类似的内容:

if image.id in user_saved_list:
     #add CSS class

但这似乎是错误的做事方式。

1 个答案:

答案 0 :(得分:1)

images_not_in_users_albums = Image.objects.exclude(album__user=user)

如果您想先将它们全部拉出并显示相册中的哪些内容,那么您的方法对我来说很好。