2011-10-18 23 views
0

我想在模型中导入整个csv文件,而不必从文件中逐行读取。请通过提供示例模型和源代码来导入,以帮助我解决此问题。在django中使用csvimpoter

+0

你到目前为止尝试过什么?除了逐行之外,还有哪些其他机制可用于读取csv文件? – MattH

回答

0

如果你打开从磁盘上的文件,你可以用你的文件对象django.core.files.File并将它传递给你把它保存在模型字段的保存方法:

from django.core.files import File 
csv_file = open("sample.csv", "rb") 
csv_file = File(csv_file) 
my_model_instance.my_file_field.save("sample.csv", csv_file) 

https://docs.djangoproject.com/en/1.3/ref/files/file/#additional-methods-on-files-attached-to-objects

如果您正在处理从request.FILES上传的文件,您可以直接分配到您的模型实例的的FileField:

my_model_instance.my_file = request.FILES["csvfile"] 
my_model_instance.save() 

唐忘记形式或请求上的enctype="multipart/form-data".FILES将为空。

+0

我正在从网页上载文件并访问它。是否可以使用给定的代码?请解释 – user868795

+0

请参阅我的扩展答案。 –