2013-10-05 60 views
0

我想创建一个模型的实例,但是当字段名称和值是字段值时,我有字典中的字段。在django中为模型创建动态列的实例

我找到了一个帮助我过滤的链接,但我想知道我该如何做e实例。当我试图为创建,它给我以下错误:

创建恰恰1参数(2给出)

q = Q() 
for k,v in dict.iteritems(): 
    q &= Q(**{'%s' % k: v}) 

if not model_class.objects.filter(q).exists(): 
    a = model_class.objects.create(q) 

任何帮助将不胜感激。

回答

3

使用dict与参数拆包语法:

if not model_class.objects.filter(**dict).exists(): 
    a = model_class.objects.create(**dict) 

OR

a, created = model_class.objects.get_or_create(**dict) 

BTW,不要使用dict变量名。它阴影内置功能dict

+0

非常感谢亲爱的falsetru,它工作:) – user1597122