当前位置:  开发笔记 > 编程语言 > 正文

Django ImageField upload_to路径

如何解决《DjangoImageFieldupload_to路径》经验,为你挑选了2个好方法。

我无法理解和使用Django的ImageField.

我有一个模特:

class BlogContent(models.Model):
    title = models.CharField(max_length=300)
    image = models.ImageField(upload_to='static/static_dirs/images/')
    description = models.TextField()

我的文件系统目前是:

src
 |---main_project
 |---app_that_contains_blog_content_model
 |---static
       |---static_dirs
                |---images

当我运行服务器并转到管理员页面时,我可以添加BlogContent对象.为图像字段选择图像后,图像具有临时名称.但是,保存此对象后,我无法在upload_to路径指定的文件夹中找到该图像.

这样做的正确方法是什么?



1> Ivan Semochk..:

您的图像将上传到media文件夹,因此最好更改模型中的路径images/,然后将其上传到media/images

另外settings.py这个

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

url.py

from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [....
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

然后,如果你想显示所有这些图像,请使用类似的内容 view.py
BlogContent.objects.all()

并像这样呈现:

{% for img in your_object %}

{% endfor %}



2> doniyor..:

staticupload_to多年平均值是有意义的,因为用户上传的图片进入media/文件夹..你需要这些:

image = models.ImageField(upload_to='blog/%Y/%m/%d')

所有图像都落在:

media/blog/2016/01/02/img_name.jpg

你在模板中访问它是这样的:


在设置中:

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

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

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有