2011-10-18 26 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

請參閱我的擴展答案。 –