Django:过滤包含存储Regex字段的模型

Dan*_*own 8 python regex django django-models django-filter

我有一个存储REGEX模式的字段,我试图通过将它与传入的名为hostname的变量进行比较来过滤它所在的模型.(例如:这里我只是对REGEX进行了硬编码.

Sys_team.objects.filter(hostname= r'^.*\.amgr\..*')
Run Code Online (Sandbox Code Playgroud)

我遇到了这个错误:

FieldError: Cannot resolve keyword 'hostname' into field. Choices are: alert, id, pattern, pub_date, sys_team

主机名的格式为:xxx.amgr.xxx

这是否意味着只有字段可以进入过滤器的左侧?如果是这样,是否有另一种方法可以将两者与左侧的REGEX模式进行比较.重申一下,hostname不是字段.

Aar*_*ier 11

使用Django __contains方法.

所以对于你的查询:

Sys_team.objects.filter(hostname__contains='.amgr.')
Run Code Online (Sandbox Code Playgroud)

__contains是Django ORM相当于SQL的LIKE关键字.

这是文档:

https://docs.djangoproject.com/en/dev/topics/db/queries/#escaping-percent-signs-and-underscores-in-like-statements