简化Django模型的save()表达式

时间:2014-03-14 02:45:19

标签: python django

情况如下:

我有一个像这样的Django模型save()函数:

obj = Model1(attr1=params['attr1'], attr2=params['attr2'], attr3=params['attr3'], …)

或者这个:

class MyClass():
    pass

my = MyClass()

…...

obj = Model2(attr1=my.attr1, attr2=my.attr2, attr3=my.attr3...)

超过二十个属性。

这是一个非常漫长且不友好的表达。更好的方法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用setattr()

obj = Model1()
for key, value in params.iteritems()
   setattr(obj, key, value)

或:

obj = Model1(**params)

另见:

希望有所帮助。

答案 1 :(得分:0)

我更喜欢这样的东西

params = {
    'param1': param1,
    'param2': param2,
     ....
}

obj = Model1(**params)