Django 1.5.4中的ImageField - 处理图像的路径

时间:2013-10-03 18:45:55

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

我正在使用Django 1.5.4并且我有一个具有以下结构的项目:

django_site
    -django_site
    -books # the app
        -media
            -images
                -books
                -authors
        -static
            -images
    -templates

这是必要的代码:

# settings.py
MEDIA_ROOT = '/root/django_site/books/media/'
MEDIA_URL = '/media/'

# models.py
class Book(models.Model):
    image = models.ImageField(upload_to="images/books/")

# urls.py
urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^books/$', 'books.views.get_all_books'),
)

我的问题是,在通过管理网站添加图片后,如果我点击上传按钮下方的图片链接,会显示404页面,抱怨该路径不存在。

请求网址为http://127.0.0.1:8000/media/books/media/images/book/out_of_control_1.JPG,但实际上我希望结果为/root/django_site/books/media/images/out_of_control_1.JPG

我该如何解决?期待您的回复。

1 个答案:

答案 0 :(得分:2)

由于您似乎使用了开发服务器,我认为您的问题与此相关:Django MEDIA_URL and MEDIA_ROOT

the answer中所述,当debug设置为True时,您必须为媒体处理设置特定的URL模式。

您还可以查看有关此问题的the docs