可疑文件操作:无法在我的 django 项目文件夹中配置媒体根目录和基本目录

我正在尝试将项目文件保存到媒体,然后在 url 中显示,到目前为止,我已经遵循了一些简单的技术来避免文件操作并将它们存储在媒体中


我的setting.py文件->


STATIC_ROOT = os.path.join(BASE_DIR, 'static')

STATIC_URL = '/static/'



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

MEDIA_URL = '/media/'

我的 models.py 文件模型字段->


picture = models.ImageField(null=True, blank=True, upload_to = "photos")

resume = models.FileField(null=True, blank=True, upload_to = "resume")

然后它会正确存储并显示为媒体网址。


我的 urls.py 文件->


from django.contrib import admin

from django.urls import path,include

from django.conf.urls.static import static

from django.conf import settings


urlpatterns = [

    path('admin/', admin.site.urls),

    path('api/v1/cand/',include("core.urls"))

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

主要问题发生在我查询简历 pdf 文件时。它找不到 BASE_DIR


from django.conf import BASE_DIR

url = serializer.data["resume"]

file_name = url.split("/")[-1]

data=ResumeParser(os.path.join(BASE_DIR,"/media/resume/",file_name)).get_extracted_data()

return Response({**serializer.data, "data": data}, status = status.HTTP_200_OK)

虽然当我使用绝对路径时它有效->


 url = serializer.data["resume"]

    file_name = url.split("/")[-1]

    data=ResumeParser("/home/riyad/Desktop/kalkedev/services/candidate","media/resume/",file_name).get_extracted_data()

    return Response({**serializer.data, "data": data}, status = status.HTTP_200

_好的)


这是一个 django 问题吗,因为我之前一直在处理这个 issur 并采取简单的方法(默认 base_dir)来存储文件。需要快速找到答案。


人到中年有点甜
浏览 69回答 3
3回答

喵喵时光机

不,不是这样,我发布后查看它,我发布了错误的代码,它应该是 django.conf 导入设置。主要问题是它找不到设置。BASE_DIR 即使我正确导入它......它什么也不返回。

慕的地8271018

实际上settings.BASE_DIR是同步的..你必须这样写路径才能使其异步path = settings.BASE_DIR + "文件路径"那么你可以将这个路径添加到任何函数中,除非直接添加settings.BASE_DIR是行不通的。

心有法竹

BASE_DIR 在设置中,而不是 django.conffrom django.conf import settings settings.BASE_DIR
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python