似乎无法在Django中加载图像?

时间:2011-03-29 08:28:33

标签: python django url django-admin django-models

这应该是非常直接的,但我有一种感觉,其中一个路径是把整个事情搞砸了。基本上,我的图像显示为404.

以下是我的Django应用程序的相关部分:

models.py

class MemeDetails(models.Model):
    datecreated = models.DateTimeField(default=datetime.datetime.now)
    profileimage = models.ImageField(upload_to="memeimages", blank=True)
    name = models.CharField(max_length=50)
    description = models.CharField(max_length=1000)
    origin = models.CharField(max_length=50)
    origindate = models.DateField()

settings.py

MEDIA_ROOT = '/home/nai/Projects/meme/media/'
MEDIA_URL = '/media/'

因此所有图片都会进入此文件夹home/nai/Projects/meme/media/memeimages

urls.py

urlpatterns = patterns('',
    (r'^media/(?P<path>.*)$', 'django.views.static.serve',
                 {'document_root': settings.MEDIA_ROOT}),
)

views.py

def memepage(request, memeid):

    q = MemeDetails.objects.get(id=memeid)
    memeimage = q.profileimage

    return render_to_response('memepage.html', {'memeid': memeid, 'memeimage': memeimage},context_instance=RequestContext(request))

模板

<img src="{{ MEDIA_URL }}{{memeimage }}" />, {{ memeid }}

图片的实际网址位于此网址http://127.0.0.1:8000/media/memeimages/flickrphotobrowser.png,但我收到了404.

P.S我知道我应该使用Apache在我的生产环境中提供静态图像。我只是想让它发挥作用。

帮助!

2 个答案:

答案 0 :(得分:2)

您的ADMIN_MEDIA_PREFIX可能也是/media/。改变其中一个。

答案 1 :(得分:0)

更改MEDIA_URL

MEDIA_URL ='http://127.0.0.1:8000/media/'