Python / Django显示图像

时间:2017-03-31 08:11:18

标签: python django image html-table

我是django的新手,我遇到了问题。我有一个带有图像和一些数据的html表,并且根据你选择哪一个图像应该显示在下一页,但是我有显示图像的问题,我得到的只是图标。图像在第一页上工作,但所选页面出现问题。 谁能帮助我? (我正在使用django 1.10)

models.py

class Tags(models.Model):
    tag_name = models.CharField(max_length=250)
    tag_chip_type = models.CharField(max_length=250)
    tag_size = models.CharField(max_length=250)
    tag_frequency = models.CharField(max_length=250)
    tag_standards = models.CharField(max_length=250, null=True, blank=True)
    tag_memory = models.CharField(max_length=250)
    tag_reading_distance = models.CharField(max_length=250)
    tag_environment = models.CharField(max_length=250)
    tag_mounting_method = models.CharField(max_length=250)
    tag_operating_temperature = models.CharField(max_length=250, null=True, blank=True)
    tag_storage_temperature = models.CharField(max_length=250, null=True, blank=True)
    tag_chemical_and_environmental_resistances = models.CharField(max_length=500, null=True, blank=True)
    tag_image = models.FileField()

    def __unicode__(self):
        return self.tag_name + ' ' + self.tag_image.url

    def get_absolute_url(self):
        return reverse('tag:index')

views.py

def selected(request):
    tags = request.GET.getlist('selected')
    return render(request, 'tag/selected.html', {'all_tags':tags})

urls.py

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

的index.html

<form action="{% url 'tag:selected' %}" method="get">
        <table id="selected" class="white-table table-bordered table-hover" style="width:95%; margin: 3% auto;">
             <thead>
                 <tr>
                     <th style="text-align:center;"><input type="checkbox" onClick="toggle(this)"></th>
                     <th></th>
                     <th style="text-align:center;">Name</th>
                     <th style="text-align:center;">Chip Type</th>
                     <th style="text-align:center;">Size</th>
                     <th style="text-align:center;">Frequency</th>
                     <th style="text-align:center;">Memory</th>
                     <th style="text-align:center;">Reading distance</th>
                     <th class="null" style="text-align:center;">Environment</th>
                     <th class="null" style="text-align:center;">Mounting method</th>
                 </tr>
             </thead>
  <tbody>
  {% for tags in all_tags %}

            <tr>
            <td style="text-align:center;"><input type="checkbox"  name="selected" value="{{ tags.tag_image.url }}"></td>
            <td><a href="{% url 'tag:detail' tags.id %}"> <img src="{{ tags.tag_image.url }}" class="img-responsive" style="width: 60px; height:80px; margin:auto;" /> </a></td>
            <td style="text-align:center;"> {{ tags.tag_name }} </td>
            <td style="text-align:center;"> {{ tags.tag_chip_type }} </td>
            <td style="text-align:center;"> {{ tags.tag_size }} </td>
            <td style="text-align:center;"> {{ tags.tag_frequency }} </td>
            <td style="text-align:center;"> {{ tags.tag_memory }} </td>
            <td style="text-align:center;"> {{ tags.tag_reading_distance }} </td>
            <td class="null" style="text-align:center;"> {{ tags.tag_environment }} </td>
            <td class="null" style="text-align:center;"> {{ tags.tag_mounting_method }} </td>
            </tr>
  {% endfor %}
            </tbody>
        </table>
        <input class="btn-primary" style="float:right; margin-right:2.5%; margin-bottom:3%;" type="submit" value="Submit">
    </form>


{% endblock %}

settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

selected.html

{% block body %}

{% for tags in all_tags %}
    <div class=" col-md-4">
            <div class="panel panel-default">
                <div class="panel-body">
<img src=" '/media/'{{ tags.tag_image.url }}" class="img-responsive" style="width: 60px; height:80px; margin:auto;" />
        </div>
    </div>
</div>
{% endfor %}
{% endblock %}

2 个答案:

答案 0 :(得分:0)

您必须添加网址格式:

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

答案 1 :(得分:0)

首先,您必须确保在浏览器测试中使用http://xxxxxxx/xxx/you.jpg显示您的图片