我有一个名为 UserCommunityProfiles 的模型,其结构如下
class UserCommunityProfile(models.Model):
owner = models.ForeignKey(
User,
on_delete = models.CASCADE)
(...)
和一个称为结构化订阅的模型:
class subscriptions(models.Model):
subscriber = models.ForeignKey(
User,
on_delete = models.CASCADE, related_name='subscriber'
)
subscribed_to = models.ForeignKey(
User,
on_delete = models.CASCADE, related_name='subscribed_to'
)
我想要实现的是将不在查询集中订阅中的每个用户的配置文件显示为 subscribed_to 并且订阅者是 request.user
我所做的就是我所做的 View
subs = subscriptions.objects.filter(subscriber=request.user)
profiles = UserCommunityProfile.objects.exclude(owner=subs)
但我收到一条错误消息,提示 无法将 QuerySet 用于“订阅”:将 QuerySet 用于“用户”。
我该怎么办?
最佳答案
解决方法:
subs=User.objects.filter(subscribed_to__subscriber=request.user).values_list('id')
profiles = UserCommunityProfile.objects.exclude(owner__in=subs)
关于python - 基于另一个查询集过滤一个查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52005636/