2013-06-17 1 views
0

Django에서 내 모델에 FileField를 사용하려고하고 파일 시스템에 기존 파일을 사용하여 설정하려고합니다. 나는 이것을 시도해 보았고 미디어 디렉토리에 10 KB 밖에 갖지 못했습니다.Django 파일 chunk()가 전체 이진 파일을 반환하지 않습니다.

c = MyClass() 
f = open('D:\\bin.jpg') 
df = File(file) 
c.file.save('newFile', df) 
f.close() 
c.save() 

FileField.save는 File.chunks를 호출하며 모든 것을 얻지 못하는 바이너리 파일입니다. 내가 여기서 뭔가를 놓치고 있니?

f_text = File(open('D:\\text.txt')) 
print f_text.size/1024./1024 
>> 13.7466430664 
print sum([len(c) for c in f_text.chunks()])/1024./1024 
>> 13.7466430664 

f_bin = File(open('D:\\bin.jpg')) 
print f_bin.size/1024./1024 
>> 0.741801261902 
print sum([len(c) for c in f_bin.chunks()])/1024./1024 
>> 0.00253677368164 

f = MyClass.objects.get(id=50).file 
# is file as f_bin uploaded using Django admin tool 
print f.size/1024./1024 
>> 0.741801261902 
print sum([len(c) for c in f.chunks()])/1024./1024 
>> 0.741801261902 

체제 : Windows 7

장고 : 1.5.1

파이썬 : 2.7.5 당신은 바이너리 모드로 파일을 열 필요가

+0

이것은 장고 (Django) 질문이 아니며, 파이썬 질문입니다. 그에 따라 태그를 변경해야합니다. –

답변

1

:

f_bin = File(open('D:\\bin.jpg', 'rb')) 

파이썬 문서에서 Reading and Writing Files을 참조하십시오.

+0

감사! 그냥 깨어나 내 어리석은 실수를 깨닫게. – user1167710

관련 문제