2017-01-04 40 views
0

我需要將文件保存爲FileField對象,該對象的名稱和內容而不是從表單(但是來自我的代碼)。怎麼樣?將文件保存爲不帶表單的

我需要這樣的東西:

field = FileField() 
... 
save_under_name(field, name, content_bytes) 

如何寫這個功能save_under_name

另外我需要獲取保存的文件名的鏈接。

+0

據我記得,你可以覆蓋模型中的保存方法,然後在保存之前更改記錄中的值 – MikeVelazco

回答

2

那麼,你很可能需要使用FieldFile對象,它定義了一個FileField保存文件的內容。要製作FieldFile,您可以在文件系統中使用文件描述符,也可以使用表示文件內容的字符串。 Django的文檔具有很好的解釋約field.save()方法,引用:

from django.core.files import File 
# Open an existing file using Python's built-in open() 
f = open('/path/to/hello.world') 
myfile = File(f) 

from django.core.files.base import ContentFile 
myfile = ContentFile("hello world") 

然後做

obj.field.save('filename', myfile) 

Django doc says it all