Django Admin中的图像用错误的URL生成



我正在尝试django并遇到以下问题:

我有一个模型类Property,该类别具有各种属性,这是图像。image属性定义为:

image = models.FileField(
    upload_to = 'properties',
    default = 'properties/house.jpeg')

目录propertiesimages的子目录,在settings.py中定义为:

MEDIA_ROOT = '/Users/.../Development/pms/images/'
MEDIA_URL = 'http://localhost:8000/images/'

从有关此主题的类似帖子中得出,我将以下内容添加到我的Property模型中:

def admin_image(self):
    return '<img src="images/%s" width="100"/>' % self.image
admin_image.allow_tags = True

i然后将admin_image()作为属性添加到列表显示:

list_display = ('admin_image', ...)

当我检查管理应用程序中的图像时,我会得到以下内容:

http://127.0.0.1:8000/admin/properties/property/images/properties/house.jpeg/

这将生成404,因为URL的生成错误。首先,这条路径不正确,其次是在URL的末尾有一个尾声/。

我显然错过了什么...我做错了什么?

编辑:

感谢@okm的各种指针。我做了以下操作:

将以下内容添加到我的urls.py:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf import settings
... original url patterns ...
urlpatterns += staticfiles_urlpatterns()
if settings.DEBUG:
    urlpatterns += patterns('',
        url(r'^images/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
        }),
   )

然后在设置中。

absolute/filesystem/path/to/images

and intertings.py set media_url:

/images/

根据doc&amp;在这里,尝试self.image.url而不是'...' % self.image

最新更新