从列表列表填充Django模型

时间:2017-04-06 16:27:44

标签: django django-models

我有一份清单清单。我想用这些数据填充模型。

my_list = [['January', 'February', 'March'], [10, 20, 30], [2, 4, 6]]

The Model I's like to build is:

MyModel(models.Model):
    month = models.Charfield(maxlength=12) # This is my_list[0]
    sales = models.DecimalField() # This is my_list[1]
    expenses = models.DecimalField() # This is my_list[2]

请原谅任何错别字。我从记忆中输入了这个。我正在寻找关于如何从列表列表生成模型的一般原则。我想避免将列表存储在单个数据库条目中(通过使用JSON等),而是希望每个数据库条目保存单个值。换句话说,我的月份行将包含1月,2月和3月的单独列。

先谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用zipbulk_create使用一个查询创建所有记录:

objects = []
for month, sales, expenses in zip(*my_list):
    objects.append(MyModel(
        month=month,
        sales=sales,
        expenses=expenses
    ))
MyModel.objects.bulk_create(objects)