我对使用哪个字段感到困惑.我需要的只是一个将保存文件的字段(音频和/或另一个文件)
FileField似乎专门用于上传,我认为它对我所需要的东西有点过分,我也不喜欢每次上传内容时它会如何自动上传并将文件重命名为唯一的文件名(file_FHjgh758.txt) .
我对FilePathField的问题在于它似乎需要一个绝对路径,这显然与开发到生产不同,我通过将其添加到模型来解决这个问题...
import os
class Foo(models.Model):
path = os.path.dirname(os.path.dirname(__file__))
path = os.join(path, 'media')
audio = models.FilePathField(path=path)
Run Code Online (Sandbox Code Playgroud)
我不知道这是否安全或正确,并且在线或在文档中没有很多示例可供借鉴.
为了清楚起见,我只想拥有一个可以指向系统中某个文件(音频或图像)的字段.这样做最好的方法是什么?
sol*_*oke 19
如果要引用文件系统上已有的文件而不是用户上载的文件,那么FilePathField就是您想要的文件.
在这方面几点评论:
不要指向应用源树中的路径.那不安全.
您可以使用设置或环境变量来处理开发与生产路径,例如,FILE_PATH_FIELD_DIRECTORY在开发/生产设置文件中设置一个设置,并从您的应用程序中引用此设置:
from django.conf import settings
class Foo(models.Model):
audio = models.FilePathField(path=settings.FILE_PATH_FIELD_DIRECTORY)
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
10669 次 |
| 最近记录: |