2012-09-21 54 views
1

是否有动态生成Q()而不是使用eval()的方法。mongoengine - 动态生成Q()

电流法的eval():

Q = EVAL( “Q(” + q_arg +模式+ “= ARGS [参数])”)

当模式是 “_ 中” 或“ _nin”。

这个工作,只是想做到这一点不eval()函数

回答

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) 
+0

完美!谢谢! – user1689543

+1

请将问题标记为已回答 - 以帮助其他人搜索此:) – Ross