Python 在django模型上实现通配符搜索

Python 在django模型上实现通配符搜索,python,django,Python,Django,我有一个名为主机的模型,我在其中存储所有服务器的所有信息。在模型中,我有一个字段hostname 我希望用户能够指定通配符搜索,例如:*one,在这里他们可以获得主机名以one结尾的所有主机,或者 one*在那里,他们可以获得主机名以one开头的所有主机 以及1*2和*1*2和*1*2*和*1*2*3和1*2*3等等 我曾经尝试过迭代hostname.split('*')的结果,但是如果/elif继续混乱,我最终会感到困惑。有人知道更优雅的处理通配符的方法吗?你在找什么 给予 您仍然需要迭代,但

我有一个名为主机的模型,我在其中存储所有服务器的所有信息。在模型中,我有一个字段
hostname

我希望用户能够指定通配符搜索,例如:
*one
,在这里他们可以获得主机名以
one
结尾的所有主机,或者
one*
在那里,他们可以获得主机名以
one开头的所有主机
以及
1*2
*1*2
*1*2*
*1*2*3
1*2*3
等等

我曾经尝试过迭代
hostname.split('*')
的结果,但是如果/elif继续混乱,我最终会感到困惑。有人知道更优雅的处理通配符的方法吗?

你在找什么

给予


您仍然需要迭代,但必须处理单个
如果

尝试使用
Q
对象和
split
方法,并使用
操作符将它们连接起来。
import fnmatch

print(fnmatch.fnmatch('foo.info', 'foo*'))
print(fnmatch.fnmatch('foo.info', '*.info'))
print(fnmatch.fnmatch('nope', '*.info'))
True
True
False