我正在尝试将项目文件保存到媒体,然后在 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)来存储文件。需要快速找到答案。
喵喵时光机
慕的地8271018
心有法竹
相关分类