在Django中保存查询

时间:2014-10-30 06:50:00

标签: django django-queryset

我有一个模型PPTLcode

class PPTLcode(models.Model): # many to one relationship with PPTLconfig
    code = models.CharField(max_length = 255, unique = True)
    pconf = models.ForeignKey('PPTLconfig', related_name= 'codes')

我有一个代码列表。我想保存列表中的每个代码,仅参考一个pconf。我可以使用迭代来执行此操作。只是好奇地知道,是否有一个单行解决方案呢?

目前我这样做: -

for code in code_list:
    obj = PPTLcode(code=code, pconf=pconf_obj)
    obj.save()

1 个答案:

答案 0 :(得分:2)

使用bulk create在一个查询中保存新对象:

obj_list = []
for code in code_list:
    obj_list.append(PPTLcode(code = code, pconf = pconf_obj))
PPTLcode.objects.bulk_create(obj_list)

或一线解决方案:

PPTLcode.objects.bulk_create([PPTLcode(code=code, pconf=pconf_obj) for code in code_list])

注意:bulk_create在django> = 1.4

中可用