虽然我在如何正确显示Django-Admin中的图像上找到了有用的帖子(#1,#2,#3),但迄今为止我还没有成功地遵循这些建议。如下所示,上传的图像未被正确显示,并显示404错误。
下面的图片说明了上传的图像未被显示,尽管它们已经成功地上传到服务器上:
在编辑给定对象时,我也想知道如何显示缩略图而不是图像路径:
下面是我迄今为止使用的配置:
settings.py
import os
PROJECT_ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..').replace('\\','/')
SITE_ROOT = PROJECT_ROOT
# Path to media files, e.g. images
MEDIA_ROOT = os.path.join(SITE_ROOT, 'media')
MEDIA_URL = '/media/'
urls.py
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.conf import settings
from . import views
urlpatterns = patterns('',
# some url configs here ... removed for simplification purposes ;-)
)
if settings.DEBUG is True:
urlpatterns += patterns('', (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}) )
#urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py
class Image(models.Model):
title = models.CharField(db_column='title', max_length=180, blank=True, null=True, help_text="Title of the image")
imagefile = models.ImageField(db_column='imagefile', upload_to='images', null=True, blank=True, help_text="Load an image.")
#... some other fields here, removed for simplification purposes ;-)
def image_(self):
return '<a href="/media/{0}"><img src="/media/{0}"></a>'.format(self.imagefile)
image_.allow_tags = True
class Meta:
managed = False
db_table = 'image'
def __unicode__(self):
return u'%s' % (self.title)
admin.py
from django.contrib import admin
from .models import Image
class ImageAdmin(admin.ModelAdmin):
list_display = ('title', 'description', 'image_', )
search_fields = ('title', 'description')
list_per_page = 25
admin.site.register(Image, ImageAdmin)