Python Django:筛选包含存储正则表达式的字段的模型

Python Django:筛选包含存储正则表达式的字段的模型,python,regex,django,django-models,django-filter,Python,Regex,Django,Django Models,Django Filter,我有一个存储REGEX模式的字段,我试图通过将它与传入的名为hostname的变量进行比较来过滤它所在的模型。(例:这里我只是硬编码了正则表达式 Sys_team.objects.filter(hostname= r'^.*\.amgr\..*') 我遇到了以下错误: FieldError:无法将关键字“hostname”解析为字段。选项包括:警报、id、模式、发布日期、系统团队 主机名的格式为:xxx.amgr.xxx 这是否意味着只有字段可以进入过滤器的左侧?如果是这样,是否有其他方法将这

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

Sys_team.objects.filter(hostname= r'^.*\.amgr\..*')
我遇到了以下错误:

FieldError:无法将关键字“hostname”解析为字段。选项包括:警报、id、模式、发布日期、系统团队

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


这是否意味着只有字段可以进入过滤器的左侧?如果是这样,是否有其他方法将这两个字段与左侧的正则表达式模式进行比较。重申一下,主机名不是字段。

使用Django
\u contains
方法

因此,对于您的查询:

Sys_team.objects.filter(hostname__contains='.amgr.')
\uuu contains
是Django ORM的等价于SQL的
LIKE
关键字

以下是文件:


在左侧,是的,只有您正在查询的模型中的字段或相关模型中的字段。在右侧,您可以使用
django.models.F
来引用另一个字段。您还可以使用
SysTeam.objects.extra
SysTeam.objects.raw
来使用原始SQL进行自定义查询。是的,原始SQL作为一个可能性,但我希望它保持Django-y。感谢您的回复!只有字段可以在过滤器的左侧。