2017-02-20 5 views
0

djangoの管理者からアップロードした画像がありますが、表示されません。奇妙なことは、私は同じコードを持つ別のプロジェクトがあり、それが動作するということです。 object.image.urlは私の他のプロジェクトと同様に/media/media/image.jpgを出力します。しかし、このプロジェクトはイメージを示していません。静的フォルダからイメージを置くかイメージをハードコードすると問題なく動作します。問題は、管理者からアップロードされた画像を試してもうまくいかないときだけです。 settings.pyファイルに何かがありませんか?どこですか?パスが正しいのにDjango object.image.urlが表示されない

Models.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 

views.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> 

settings.py:

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

urls.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"), 
] 

答えて

0

私はあなたがあなたのurls.py.にメディアのURLを追加する必要があると考えています次のようなもの:

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) 
+0

はいそれはうまくいった、ありがとう。私はそれをやらなければならなかった...それがなぜ起こったのかを調べなければならないだろう。再度、感謝します。 – Brando

関連する問題