[英]Django ORM - querying many to many through models?
因此,我正在嘗試在Django中實現用戶收藏夾系統。 我需要存儲收藏夾對象的時間,因此我正在使用Django的多對多貫穿模式。 正如您在下面看到的,我有一個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)
謝謝。
您可以使用Django ORM輕松完成此操作。
在頁面上顯示所有用戶的收藏夾
user.favoriters.all() # though that is not a good related_name
查詢用戶的收藏夾以查看其中是否有某個圖庫
if user.favoriters.filter(pk=my_gallery.pk).exists():
pass
有關更多示例,請參見文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.