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

9 投票
1 回答
10849 浏览
提问于 2025-04-18 01:13

我有一个模型:

class Authors(models.Model):
   name = models.TextField()
   person = models.ForeignKey(Person)

还有一个查询:

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')

我遇到了这个错误:

'Q' object has no attribute 'split'

这是为什么呢?我并没有使用 split() 呢……错误出现在这个查询的那一行。

1 个回答

10

我觉得你需要用逻辑运算符,比如 |&,把你的 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')

撰写回答