2017-02-20 91 views
0

我有通過django admin上傳的圖像,但它們沒有顯示。奇怪的是,我有另一個項目與EXACT相同的代碼,它的工作原理。 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.例如:

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

相關問題