【问题标题】:Where can I find the admin code for uploading an image in django?我在哪里可以找到在 django 中上传图像的管理代码?
【发布时间】:2016-04-21 00:29:30
【问题描述】:

我目前正在对视图中的图像上传进行编码,我想将其与管理员用于上传图像的代码进行比较。管理员是否有代码生成文件表单? 在哪里可以找到管理图像/文件上传的 python 代码?

我使用的是 ubuntu 14、python 2.7 和 django 1.9。

我一直在这里寻找上传文件的管理代码,但找不到:

/usr/local/lib/python2.7/dist-packages/django/ 

这是我的图片上传代码,我想与管理员图片上传代码进行比较:

                avatarFile=request.FILES["avatar_im"]
                print(avatarFile)
                for key, file in request.FILES.items():
                    path = file.name
                    path = "images/"+path
                    dest = open(path, 'w')
                    if file.multiple_chunks:
                        for a in file.chunks():
                            dest.write(a)
                    else:
                        dest.write(file.read())
                    dest.close()   

我正在尝试了解我的管理员如何将文件上传到我的 MEDIA_ROOT/images,以及为什么我的代码会上传到我的 PROJECT_ROOT/images 文件夹。

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

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

【问题讨论】:

  • django.core.files.storage.FileSystemStorage中搜索
  • ...更新到 MEDIA_ROOT 只需使用path = os.path.join(settings.MEDIA_ROOT, 'images', file.name)
  • /admin/ 站点的源代码在这里:github.com/django/django/tree/…,您可以从那里开始搜索代码(我不知道它在哪里)

标签: python django image file file-upload


【解决方案1】:

我认为用于文件上传的代码留在里面

django.core.files.storage.FileSystemStorage

django.core.files.move

如果您想上传目录MEDIA_ROOT/images/ 中的文件,那么只需使用:

import os
from django.conf import settings
...
...
path = os.path.join(settings.MEDIA_ROOT, 'images', file.name)

【讨论】:

  • 这行得通。另一个问题...如何访问属性 upload_to ?根据我的阅读,它设置了路径。
  • 如果您的意思是在定义模型字段时设置upload_to arg,只需mymodel.myfilefield.field.upload_to。如果对您有用,请随意接受答案
猜你喜欢
  • 2015-11-09
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多