【问题标题】:Suspicious file operation : Cannot configure media root and base dir in my django Project folder可疑文件操作:无法在我的 django 项目文件夹中配置媒体根目录和基本目录
【发布时间】:2020-09-14 07:31:50
【问题描述】:

我正在尝试将项目文件保存到媒体,然后在 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")

它会正确存储并显示为媒体 url。

我的 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

_OK)

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

【问题讨论】:

    标签: python django rest


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      实际上 settings.BASE_DIR 是同步的..你必须写这样的路径才能使其异步

      path = settings.BASE_DIR + "文件路径"

      那么你可以将这个路径添加到任何函数中,除非直接添加settings.BASE_DIR是不行的。

      【讨论】:

        【解决方案3】:

        BASE_DIR 在设置中,而不是 django.conf

        from django.conf import settings
        settings.BASE_DIR
        

        【讨论】:

          猜你喜欢
          • 2020-08-25
          • 1970-01-01
          • 1970-01-01
          • 2021-10-04
          • 2021-10-09
          • 1970-01-01
          • 1970-01-01
          • 2013-04-08
          • 1970-01-01
          相关资源
          最近更新 更多