python - 即使路径正确,Django object.image.url 也不显示

标签 python django

我有通过 django admin 上传的图像,但它们没有显示。奇怪的是,我有另一个具有完全相同代码的项目并且它可以工作。 object.image.url 输出/media/media/image.jpg 和我的其他项目一样。但是这个项目没有显示图像。如果我从我的静态文件夹中放入一个图像或者如果我对图像进行硬编码,它就可以正常工作。问题仅在于当我尝试从管理员上传的图像时它不起作用。我的 settings.py 文件中是否缺少某些内容?或任何地方?

模型.py:

from django.db import models

# Create your models here.
class Connect(models.Model):
title = models.CharField(max_length=70)
short_description = models.TextField(null=True, blank=True)
description = models.TextField()
image = models.ImageField(upload_to='media', blank=True, null=True)

def __str__(self):
    return self.title

View .py:
def index(request):
about = About.objects.all()
staff = Staffmembers.objects.all()
ministries = Ministries.objects.all()
connect = Connect.objects.all()
context = {
    'template': 'home',
    'connect': connect,
    'about': about,
    'staff': staff,
    'ministries': ministries,
    }
return render(request,'home/index.html', context)

模板(index.html):
<div class="connect-wrapper row">
        <h1 class="title connect-title">Connect</h1>
        {% for object in connect %}
    <div class="home-div connect-div col-md-4">
        <h4>{{ object.title }}</h4>
        <p>{{ object.short_description }}</p>
        {% if object.image %}
        <img class="connect-image-home" src="{{object.image.url}}" alt="connect">
        <p>{{object.image.url}}</p> //sanity check
        {% endif %}
    </div>
    {% endfor %}
</div>

设置.py:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')

网址.py:
from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('home.urls'), name="home"),
]

最佳答案

我相信您需要将媒体网址添加到您的 urls.py 中。就像是:

from django.conf import settings
from django.conf.urls import url
from django.conf.urls.static import static
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('home.urls'), name="home"),
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)

关于python - 即使路径正确,Django object.image.url 也不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42335158/

相关文章:

python - 何时以及为什么应该使用命名元组而不是字典?

小数的Python算术

python - Django: AttributeError: 模块 'User.views' 没有属性 'User'

sql - Django 查询集 : Filter by reverse key and order by

python - Laravel 在 django 中的 dd() 等效项

python - 在 reportlab 中创建具有不同高度行的表格

python - 如何将 BeautifulSoup.ResultSet 转换为字符串

python - 有没有办法找到给定VM的资源组,然后使用Python sdk找到Azure中VM的详细信息

mysql - Django:根据相关字段的计数来订购 QuerySet 的最快方法是什么?

python - 在 Django 代理中间件中允许逐跳 header