gpt4 book ai didi

django - 使用 Django FileField 或 FilePathField?

转载 作者:行者123 更新时间:2023-12-03 14:06:07 25 4
gpt4 key购买 nike

我对使用哪个字段有点困惑。我需要的只是一个可以保存文件的字段(音频和/或另一个用于图像的字段)

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)

我不知道这是否安全或正确,并且在线或文档中没有很多示例可供引用。

明确地说,我只想有一个字段,我可以指向系统中某处的文件(音频或图像)。这样做的最佳方法是什么?

最佳答案

如果你想引用文件系统上已经存在的文件而不是用户上传的文件,那么 FilePathField是你想要的。

在这方面有几点意见:

  • 不要指向应用程序源代码树中的路径。那是不安全的。
  • 您可以使用设置或环境变量来处理开发与生产路径,例如,放置 FILE_PATH_FIELD_DIRECTORY在您的开发/生产设置文件中设置并从您的应用程序中引用此设置:
    from django.conf import settings

    class Foo(models.Model):
    audio = models.FilePathField(path=settings.FILE_PATH_FIELD_DIRECTORY)
  • 关于django - 使用 Django FileField 或 FilePathField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33072565/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com