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

2024-04-30 01:04:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将项目文件保存到媒体,然后在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/'

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文件->

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)存储文件。需要快速找到答案


Tags: 文件pathdjangofromimportgturldata
3条回答

实际上settings.BASE_DIR是synchronus。您必须这样编写路径才能使其异步

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

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

BASE_DIR在settings中,而不是django.conf中

from django.conf import settings
settings.BASE_DIR

enter image description here

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

相关问题 更多 >