所以我试图在Django中实现用户收藏夹系统。我需要存储一个Gallery对象被收藏的时间,所以我使用的是Django的many to many through模式。正如您在下面所看到的,我有一个Gallery对象,它与已经收藏它的用户有很多关系,而Favorite对象与User和Gallery有多对一关系。我想做一些事情,比如显示包含所有用户收藏夹的页面,查询用户收藏夹以查看某个画廊是否在其中,等等。所以基本上能够让画廊成为某个用户有利。使用ORM最简单的方法是什么,或者这是我需要编写原始SQL的东西?
class Gallery(models.Model):
favoriters = models.ManyToManyField(
User, through='Favorite', null=True, related_name="favoriters")
def __unicode__(self):
return self.name
class Favorite(models.Model):
user = models.ForeignKey(User)
gallery = models.ForeignKey(Gallery)
date = models.DateField(auto_now_add=True)
感谢。
答案 0 :(得分:0)
您可以使用Django ORM轻松完成此操作。
显示包含所有用户收藏夹的页面
user.favoriters.all() # though that is not a good related_name
查询用户的收藏夹以查看某个图库是否在其中
if user.favoriters.filter(pk=my_gallery.pk).exists():
pass
有关更多示例,请参阅the documentation。