我有一个在某个函数之后生成的对象列表,我希望它保存在django模型中 我尝试了查询集操作
mylist = [(u'england', u'1', u'cde', u'IMG1', u'CP1'), (u'england', u'1', u'cde', u'IMG2', u'CP1'), (u'england', u'2', u'abc', u'IMG1', u'CP1')]
class Mymodel(models.Model):
batch_id = models.AutoField(primary_key=True)
batch_cola = models.CharField(max_length=100)
batch_colb = models.CharField(max_length=100)
batch_colc = models.CharField(max_length=100)
batch_cold = models.CharField(max_length=100)
batch_cole = models.CharField(max_length=100)
可以使用
ForeignKey
关系使父对象“包含”对象列表。示例:
然后:
有关更多信息,请参阅Django中的ForeignKey文档。
创建模型的新实例有很好的文档记录-请参见creating objects
但是要显式地回答您的问题-一个解决方案是循环遍历元组列表,将适当的关键字参数传递给模型类,然后调用save()。最后一位很重要,否则将没有数据库级事务。
您还可以使用models manager中的便利create()函数,这样就不需要调用^{} 。
文件上说这两个是equivalent-所以这有点像是一个偏好问题。
另一方面,在Python中,在创建类时应该遵循一个命名约定-“类名通常应该使用CapWords约定。”-see PEP-8 guidelines
您可以使用bulk_create方法-类似于:
该方法不是遍历对象并对每个对象调用
save()
,而是为所有对象生成一个数据库命中,而不是为每个对象生成一个命中。相关问题 更多 >
编程相关推荐