django - Django queryset中的Q对象

标签 django django-q

g = Goal.objects.filter(Q(title__contains=term) | Q(desc__contains=term))

如何将filter添加到我的user=request.user中?

这不起作用:
g = Goal.objects.filter(user=request.user, Q(title__contains=term) | Q(desc__contains=term))

楷模:
class Goal(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=255)
    desc = models.TextField()

最佳答案

关键字参数(user=request.user)必须在非关键字参数(您的Q对象)之后出现

在过滤器中切换顺序:

Goal.objects.filter(Q(title__contains=term) | Q(desc__contains=term), user=request.user) 

或将两个filter()调用链接在一起
Goal.objects.filter(user=request.user).filter(Q(title__contains=term) | Q(desc__contains=term))

关于django - Django queryset中的Q对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21188760/

相关文章:

django - 针对模型实例测试 Q 对象

python - Django:从 `Q` 中提取 `QuerySet` 对象

python - 构建请求 URL 以通过同一字段多次过滤 Django 查询集

css - Django的css文件缓存

django - 无法使用 dj-rest-auth + django-allauth 登录 Salesforce

Django - 匿名用户组

python - Django Q 过滤器未按预期工作

python - 从xml中提取元素

Django 表单向导 - 步骤 2 具有在步骤 1 中创建实例的foreignKey 字段 - 如何验证?

Django 搜索包含空格的字符串