tou*_*ist 1 django model filter
我有一个像这样的跟随模型:
class Follow(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='fuser') #who is following
follow = models.ForeignKey(User, on_delete=models.CASCADE, related_name='ffollow') #who is followed
Run Code Online (Sandbox Code Playgroud)
然后我想通过关注来获得用户。
案例 1:我想找到 user_john 和 user_mark 都在关注的用户。
users = User.objects.filter(Q(this_user_is_followed_by=user_john)
& Q(this_user_is_followed_by=user_mark))
Run Code Online (Sandbox Code Playgroud)
案例2:想找user_john关注的用户,但是关注user_mark的用户。
users = User.objects.filter(Q(there_user_is_followed_by=user_john)
& Q(these_user_are_following=user_mark))
Run Code Online (Sandbox Code Playgroud)
那个过滤器怎么做?太难了。
users = User.objects.filter(Q(ffollow__user=user)
& Q(ffollow__user=user_who_read))
Run Code Online (Sandbox Code Playgroud)
将回答 Case1。
但我不能确定。
案例1:我想找到用户
user_john,并user_mark都以下。
第一种情况应使用两个过滤器解决,否则您将过滤同一个相关对象:
User.objects.filter(fuser__follow=user_john).filter(fuser__follow=user_mark)Run Code Online (Sandbox Code Playgroud)
案例2:想找到关注了
user_john,但是关注了的用户user_mark。
User.objects.filter(fuser__follow=user_john, ffollow__user=user_mark)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |