Python Django-服务用户上载的图像

Python Django-服务用户上载的图像,python,django,media,Python,Django,Media,我在为Django应用程序中用户上传的文件提供服务时遇到一些问题: 从models.py: class Picture (models.Model): title = models.CharField(max_length=48) date_added = models.DateTimeField(auto_now=True) content = models.ImageField(upload_to='pictures') 从Django管理员将文件上载到用户\

我在为Django应用程序中用户上传的文件提供服务时遇到一些问题:

从models.py:

class Picture (models.Model):

    title = models.CharField(max_length=48)

    date_added = models.DateTimeField(auto_now=True)

    content = models.ImageField(upload_to='pictures')
从Django管理员将文件上载到用户\u res/pictures/文件夹

从项目的settings.py:

MEDIA_ROOT = 'user_res'

MEDIA_URL = '/user_res/'

STATIC_ROOT = ''

STATIC_URL = '/static/'
每次我尝试引用静态资源(即css或js文件)时,使用URL(例如

http://localhost:8000/static/<subfolder>/main.css.
URL是使用Django图片模型中的以下代码行动态创建的,可调用:

return '<img src="{}"/>'.format(self.content.url)
返回“”。格式(self.content.url)
我在url.py文件中没有用于静态或媒体文件的专用url-s

有人知道如何让Django为媒体文件服务吗?我知道,对于实时环境,我需要配置一个http服务器来服务于该特定目录,但现在我想维护一个轻量级开发套件


谢谢。

我认为url属性返回一个相对url(),因此您应该:

return '<img src="{}"/>'.format(MEDIA_URL + self.content.url)
返回“”。格式(媒体URL+self.content.URL)

相对URL不起作用,因为用户正在访问“http://localhost/books/“将请求”http://localhost/books/user_res/pictures/test.jpg“

编辑URL.py文件,如下所示

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
    # ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
编辑projects settings.py,使其看起来像:

#Rest of the settings
MEDIA_URL = '/media/'
MEDIA_ROOT = 'media'
STATIC_ROOT = ''
STATIC_URL = '/static/'
请仔细阅读Django官方文档,了解如何为用户上传的文件提供服务。链接到文档:

像这样吗?
#Rest of the settings
MEDIA_URL = '/media/'
MEDIA_ROOT = 'media'
STATIC_ROOT = ''
STATIC_URL = '/static/'