【问题标题】:Get absolute path to media folder from django views从 django 视图获取媒体文件夹的绝对路径
【发布时间】:2014-03-22 11:52:45
【问题描述】:

我想在我的媒体中提供一个文件的绝对路径,以便在上传文件后,我可以通过媒体文件夹中的绝对路径获取它。 在我的 settings.py 中,我将 MEDIA_ROOT 定义为;

MEDIA_ROOT = os.path.join(SITE_ROOT, 'media')

和 SITE_ROOT 为

SITE_ROOT = os.path.dirname(os.path.realpath(__file__))

在我的模型中,我有一个文件字段,用于定义文件应上传到的位置

file=models.FileField(upload_to='csvs',blank=True, null=True)

在我看来,我试图将绝对文件作为

if request.method=='POST':
        form=UploadForm(request.POST,request.FILES)
        if form.is_valid():
            files=request.FILES['file']
            evidence=request.POST['evidence']
            path_to_tzjmplist_file=default_storage.path(files)
            form.save()

这会返回绝对路径

"C:\Josh\Desktop\artefacts\artefacts\media\file_name.csv"

问题是它遗漏了最后一个文件夹“csvs” 我希望它返回:

 "C:\Josh\Desktop\artefacts\artefacts\media\csvs\file_name.csv"

非常感谢您的意见 问候

【问题讨论】:

    标签: django django-models django-views


    【解决方案1】:

    我相信您希望 path_to_tzjmplist_file 包含文件的磁盘路径。如果这是真的,我认为这样的事情会起作用:

    if request.method=='POST':
            form=UploadForm(request.POST,request.FILES)
            if form.is_valid():
                files=request.FILES['file']
                evidence=request.POST['evidence']
                saved_object = form.save()
                path_to_tzjmplist_file = saved_object.file.name
    

    【讨论】:

    • 有什么我应该导入的吗?我收到一个错误“Uploaded_csvs”对象没有属性“名称”
    【解决方案2】:

    在访问其属性之前,您应该先保存表单(以便创建对象),然后从 instance 中您可以使用name 获取路径:

    if request.method=='POST':
            form=UploadForm(request.POST,request.FILES)
            if form.is_valid():
                obj = form.save()  # Saves to the database
                files=request.FILES['file']
                evidence=request.POST['evidence']
                #path_to_tzjmplist_file=default_storage.path(files)
                file_name_with_path = obj.name
    

    【讨论】:

    • 我收到一个错误“Uploaded_csvs”对象没有属性“名称”
    • 有什么我应该导入的吗?
    猜你喜欢
    • 1970-01-01
    • 2023-01-26
    • 2015-09-09
    • 2011-08-30
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 2011-02-07
    • 2019-12-17
    相关资源
    最近更新 更多