我在 Django 中有以下(简化的)模型,它与 Pinterest 数据模型非常相似:
class UserProfile(models.Model):
user = models.OneToOneField(User)
class Collection(models.Model):
owner = models.ForeignKey(User,related_name='collection_owner')
followers = models.ManyToManyField(User, related_name='collection_followers', null=True, blank=True, default = None)
class Item(models.Model):
collections = models.ManyToManyField(Collection,blank=True,null=True)
我有一个 User 模型,一个与用户进行 1-1 映射的 UserProfile 模型,一个 Collection 模型,它有一个所有者和关注者,以及可以是多个集合的一部分的项目。我正在努力确定如何在 Django 中执行以下查询:
获取给定用户的所有关注者。追随者的定义是追随该特定用户拥有的至少一个集合的定义。
获取用户关注的集合的所有不同项目。
我不确定是否可以在单个查询中执行这些操作,还是必须将其分解为多个查询?什么是最好的方法,是否有任何权衡?
谢谢你的帮助。