0

在管理页面中,我向模型添加了一些图像Product。在我的settings.py文件中,我写了这个:

MEDIA_ROOT = os.path.abspath('media')
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    ('static', os.path.abspath('static')),
)

上传的图像放在文件夹中media。我想显示这些图像并在模板中<img src='{{ brand.product_image.url }}' alt=""/>写入:然后在模板中写入{% load staticfiles %},但图像不显示。那有什么问题呢?还有一个问题:存储管理员上传的图像的更好方法是:在media文件夹中还是在static文件夹中?我可以将图像存储在我使用它们的应用程序文件夹中吗?

我的Brand模型:

class Brand(models.Model):
    name = models.CharField(max_length=100, unique=True)
    description = models.CharField(max_length=1000)
    product_image = models.ImageField()
    def __unicode__(self):
        return self.name

我的template代码:

<div class="tab-pane  active" id="blockView">
        <ul class="thumbnails">
            {% for brand in brands %}
                <a href="{% url 'brand' brand_id=brand.id %}">
                <li class="span3">
                    <div class="thumbnail">
                    <img src='{{ brand.product_image.url }}' alt=""/>
                    <div class="caption">
                      <h5>{{ brand.name }}</h5>
                    </div>
                  </div>
                </li>
                </a>
            {% endfor %}
          </ul>
    <hr class="soft"/>
    </div>
4

1 回答 1

0

静态文件和媒体文件有不同的用途。对于上传的文件,您应该使用媒体文件。静态文件是包含在静态模板中的图像、JavaScript 或 CSS 文件。因此,如果某些图像是您模板的一部分,默认情况下会将它们存储在static文件夹中。

关于未显示的图像:请提供更多信息。发布您的模型。

更新 - 在开发服务器上提供媒体和静态服务。

更新你的 urls.py

from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.conf import settings


from django.contrib import admin
admin.autodiscover()


urlpatterns = patterns(
    '',

)  + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT, show_indexes=True) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT, show_indexes=True)
于 2015-04-21T19:19:30.810 回答