如何在Django中过滤以数字开头的所有内容?

Jos*_*nte 4 python django django-queryset

我有一个名为Book with Title Field的模型.

class Book(models.Model):
    title = models.CharField(null = False,blank=False)
Run Code Online (Sandbox Code Playgroud)

现在我需要一个过滤器来获取标题以数字开头的所有书籍.

这有效,但我将如何扩展查询集?

b = Book.objects.filter(title__startswith = 1).order_by('title')
Run Code Online (Sandbox Code Playgroud)

这不起作用

b = b + Book.objects.filter(title__startswith = 2).order_by('title')
Run Code Online (Sandbox Code Playgroud)

或这个

b.extend(Book.objects.filter(title__startswith = 2).order_by('title'))
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 7

您可以使用正则表达式作为查询参数:

Book.objects.filter(title__regex=r'\d')
Run Code Online (Sandbox Code Playgroud)

  • 如果它应该以数字开头,不应该是`r'^\d'`吗? (3认同)