模型看起来像
class Cars(models.Model):
name = models.CharFidle(max_length=255)
price = models.DecimalField(max_digits=5,decimal_places=2)
photo = models.ImageField(upload_to='images/cars')
def __unicode__(self):
return self.name
设置
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
但是当我在像这样的模板中使用它时
{% for car in cars %}
<li>{{ car.name }}</li>
<li>{{ car.price }}</li>
<a>{{ car.photo }}</a>
<img src="{{ car.photo.url }}"/>
{% endfor %}
我无法获得图片,这是怎么回事?
任何帮助我的人都会很棒
答案 0 :(得分:2)
这里有一些事情可以发生:
urlpatterns = [ # ... the rest of your URLconf goes here ... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
答案 1 :(得分:1)
从您的settings.py我假设您已在基本目录中创建了一个媒体文件夹。如果你有,那么你是对的。我认为问题出在您的模板中。
试试这个:
<img src="/static/{{car.photo}}" width="100" height="100" />
不要忘记在扩展基础之后在模板顶部加入{% load staticfiles %}
..你准备好了......
答案 2 :(得分:1)
urlpatterns = [
# ... the rest of your URLconf goes here ..
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
将此添加到我的根urls.py,然后记住 root urls.py