django queryset中的Q对象

use*_*076 6 django django-q

g = Goal.objects.filter(Q(title__contains=term) | Q(desc__contains=term))
Run Code Online (Sandbox Code Playgroud)

我怎样才能添加到我的filter那个user=request.user

这不起作用:

g = Goal.objects.filter(user=request.user, Q(title__contains=term) | Q(desc__contains=term))
Run Code Online (Sandbox Code Playgroud)

楷模:

class Goal(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=255)
    desc = models.TextField()
Run Code Online (Sandbox Code Playgroud)

Ala*_*air 10

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

切换过滤器中的顺序:

Goal.objects.filter(Q(title__contains=term) | Q(desc__contains=term), user=request.user) 
Run Code Online (Sandbox Code Playgroud)

或将两个filter()电话连在一起

Goal.objects.filter(user=request.user).filter(Q(title__contains=term) | Q(desc__contains=term))
Run Code Online (Sandbox Code Playgroud)