gpt4 book ai didi

python - Django媒体文件路径不正确,缺少目录

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:00 25 4
gpt4 key购买 nike

当前使用 Django 1.9。我的模型中的图像文件已正确上传到

project\media\FILEPATH.jpg

但是,图像正尝试使用不带\media 的文件路径显示。例如,当我访问我的本地主机http://127.0.0.1:8000/media/FILEPATH.jpg时在我的浏览器中,我收到 404,因为 Django 的 get 请求正在寻找:

project\FILEPATH.jpg

如何让 django 使用\media\正确地提供我的媒体文件?

<小时/>

更多信息(如果有任何用处):
设置.py:

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

型号:
image = models.ImageField(upload_to='media', Blank='true')

项目 urls.py 根据文档,我在 urlpatterns 之后有以下内容:

静态(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

感谢您的帮助!

模型.py

class Post(models.Model):
ptype = models.ForeignKey('blog.Type', related_name='posts')
title = models.CharField(max_length = 100)
text = models.TextField()
published_date = models.DateTimeField(default=timezone.now)

def __str__(self):
return self.title
class Image(models.Model):
post = models.ForeignKey('blog.Post', related_name='images')
image = models.ImageField(upload_to='media', blank='true')

View .py

class Posts(generic.ListView):
model = Post
context_object_name = 'posts'
template_name = 'blog/posts.html'

posts.html

{% extends "blog/base.html" %}
{% block content %}

{% for post in posts %}
<p><a href = "{% url 'blog:postdetail' pk=post.pk %}">{{post.title}}</a></p>
<p>{{post.text}}</p>
{% for image in post.image_set.all %}
<img src="{{ image.image.url }}">
{% endfor %}
{% endfor %}
{% endblock %}

最佳答案

好的

当你在模型上声明上传时,Django会自动检测到你的媒体路径是BASE_DIR/media,当你将一些东西放在模型上的upload_to中时,你声明该图像必须保存在BASE_DIR/media/something

示例:如果我想将用户的图像保存到媒体中,我必须在模型上进行此操作

  image = models.ImageField(upload_to='users/', blank='true')

我的图像将保存在 localhost/media/users/FILEPATH.jpg

media/之后的所有 URL 都保存在“图像”字段中,因此图像字段只会显示“users/FILEPATH.jpg”,而不是 localhost/media/

这就是为什么你需要在 src 中写入/media/

 <img src="/media/{{ image.image }}">

如果您将图像保存在名为“image”的字段中,您将不需要 .url。

尝试一下。

关于python - Django媒体文件路径不正确,缺少目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45575386/

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