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

Python 可疑文件操作:无法在my django项目文件夹中配置媒体根目录和基本目录,python,django,rest,Python,Django,Rest,我试图将项目文件保存到媒体,然后在url中显示图形,到目前为止,我已经遵循了一些简单的技术来避免文件操作,并将它们存储在媒体中 my setting.py文件-> STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATIC_URL = '/static/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' from django.contrib import

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

my setting.py文件->

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


MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
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)
my models.py文件模型字段->

picture = models.ImageField(null=True, blank=True, upload_to = "photos")
resume = models.FileField(null=True, blank=True, upload_to = "resume")
然后正确存储并显示为媒体url

my URL.py文件->

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


MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
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文件时。它找不到基本目录

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问题,因为我以前一直在处理这个问题,并采用简单的方法(默认的base_dir)存储文件。需要快速找到答案。

BASE\u DIR在settings中,而不是django.conf中

from django.conf import settings
settings.BASE_DIR

不,不是这样,我在发布后查看了它,并在应该是django.conf导入设置的地方发布了错误的代码。主要问题是,即使我正确导入了setting.BASE\u DIR,它也找不到它。。。
它不返回任何内容。

实际上settings.BASE\u DIR是同步的。您必须这样编写路径才能使其异步

path=settings.BASE_DIR+“文件路径”

然后,您可以将此路径添加到任何函数,除非直接添加settings.BASE_DIR无效