mongoengine - 动态生成Q()

时间:2012-09-21 18:07:30

标签: python mongodb pymongo mongoengine

除了使用eval()之外,还有办法动态生成Q()。

使用eval()的当前方法:

q = eval(“Q(”+ q_arg + mode +“= args [arg])”)

模式为“_ in”或“ _nin”。

这很有效,只是在没有eval()

的情况下尝试这样做

1 个答案:

答案 0 :(得分:3)

Q对象,就像任何python类一样,可以使用kwargs - 这可以是一个字典,所以你可以构建字典并将其传递给例如:

kwargs = {}

# Build the key and add it to the kwargs dict
key = "%s%s" % (q_arg, mode)
kwargs[key] = args[arg]

# Pass kwargs to Q
q = Q(**kwargs)