'Q'对象没有属性'split' - Django

don*_*yor 6 python django django-q

我有一个模型:

class Authors(models.Model):
   name = models.TextField()
   person = models.ForeignKey(Person)
Run Code Online (Sandbox Code Playgroud)

和查询:

authors = Author.objects.filter(
                                (Q(name__iregex=r"\y{0}\y".format(s1)),
                                ~Q(name__iregex=r"\y{0}\y".format(s2))
                                ),
                                person=None).order_by('-id')
Run Code Online (Sandbox Code Playgroud)

我收到错误:

'Q' object has no attribute 'split'
Run Code Online (Sandbox Code Playgroud)

为什么是这样?我没有使用split()..错误行在此查询行中.

Soh*_*ain 7

我认为您需要Q()使用像|或的逻辑运算符加入过滤器&.

authors = Author.objects.filter(
                                (Q(name__iregex=r"\y{0}\y".format(s1)) &
                                ~Q(name__iregex=r"\y{0}\y".format(s2))
                                ),
                                person=None).order_by('-id')
Run Code Online (Sandbox Code Playgroud)