gpt4 book ai didi

Django - ImageField,在开发服务器中上传、存储和提供图像

转载 作者:行者123 更新时间:2023-12-05 03:09:41 25 4
gpt4 key购买 nike

我想在我的模型的管理表单中有一个 ImageField(例如,个人资料)。我想稍后在 View 中显示此图像。

这是我的模型:

class Individual(models.Model):
ind_name = models.CharField(max_length=100)
ind_photo = models.ImageField(default="default.jpg")

def __str__(self):
return self.ind_name

这是我网站设置中的内容:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
MEDIA_URL = '/static/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,"static/media")

这些是我的应用程序的网址:

urlpatterns = [
url(r'^$', views.index, name="index")
]

我知道如何使用静态文件(例如 CSS、Javascript),并让它们在开发和生产中发挥作用。但我不知道如何让图像工作。我读过 Managing static filesDeploying static files , 但我还是不明白。

使用上面的代码,图像将保存在正确的文件夹中(即我网站级别的/static/media)。但我不知道:

1) 如何在模板中显示,

2) 是否最好将这些图像保存在我应用的静态文件夹中,

3) 和(如果是 2)每次有人在管理员中上传图片时我是否需要运行 collectstatic。

抱歉,如果我不清楚,但这种方式比我想象的更晦涩。

最佳答案

为了在开发过程中上传和提供图像,我必须将媒体文件夹移出静态文件夹(即在项目文件夹的根目录下创建一个媒体文件夹)。

在我的主要 urls.py 中,我必须添加:

from django.conf import settings
from django.conf.urls.static import static

if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

按照 MicroPyramid 的建议。

为了在模板中显示它,对于给定的个人“某人”(来自查询集),我使用:

<img src="{{ somebody.ind_photo.url }}">

关于Django - ImageField,在开发服务器中上传、存储和提供图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42069130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com