Django过滤多个args的对象

时间:2018-03-09 10:14:59

标签: python django object

目前的问题是为所有

用户进行过滤
  1. 不是用户
  2. 模型字段== True
  3. 如果我删除" .filter(model =" True")"比满足第一个要求。如何向用户添加更多过滤器?

    当前错误消息:

      

    / explore /中的FieldError无法解析关键字' model'进入田野。   选项包括:date_joined,email,emailaddress,favorite,first_name,   groups,id,images,is_active,is_staff,is_superuser,last_login,   last_name,logentry,所有者,密码,个人资料,socialaccount,   user_permissions,username,webhook

    我理解错误的意思。但是,我不确定如何在代码中实现它。

    view.py

    def explore(request, pk=None):
        template_name = 've/cp/explore.html'
    
        users_list = User.objects.exclude(id=request.user.id).filter(model="True")
    
        paginator = Paginator(users_list, 16)  # Show x per page
        page = request.GET.get('page')
        users = paginator.get_page(page)
    
        try:
            favorite = Favorite.objects.get(current_user=request.user)
            favorites = favorite.users.all()
        except Favorite.DoesNotExist:
            favorites = None
    
        args = {
            'favorites': favorites, 'users': users,
        }
    
        return render(request, template_name, args)
    

    models.py

    class Profile(models.Model):
        user = models.OneToOneField(User, on_delete=models.CASCADE)
        bio = models.TextField(max_length=500, blank=True, null=True)
        model = models.BooleanField(default=False)
        ...
    

1 个答案:

答案 0 :(得分:1)

__与个人资料关键字一起使用:

users_list = User.objects.exclude(id=request.user.id).filter(profile__model="True")