Python-在Django中显示图像

Python-在Django中显示图像,python,django,image,Python,Django,Image,我是django的新手,我正在尝试创建项目,但我在显示图像时遇到了问题。我有一个带有复选框的html表格,在选择了一个对象后,我希望在下一页显示图像,但我只能得到一个破碎的图像 我可以这样显示图像: <img src="{{ MEDIA_URL }}bird.png" class="img-responsive" style="width: 60px; height:80px; margin:auto;" /> 如果我使用: def selected(request): t

我是django的新手,我正在尝试创建项目,但我在显示图像时遇到了问题。我有一个带有复选框的html表格,在选择了一个对象后,我希望在下一页显示图像,但我只能得到一个破碎的图像

我可以这样显示图像:

<img src="{{ MEDIA_URL }}bird.png" class="img-responsive" style="width: 60px; height:80px; margin:auto;" />
如果我使用:

def selected(request):
    tags = request.GET.getlist('selected')
    all_tags = Tags.objects.all
    return render(request, 'tag/selected.html', {'tags':tags, 'all_tags':all_tags})
然后它会找到图像,但它也会显示所有的图像,即使我只选择了一个。
这是我的问题已经有一段时间了,如果有人能帮助我,我将非常感激

我将尝试正确解释您的问题!但如果我错了,请告诉我:

您的标记模型如下所示:

class Tags(models.Model):
    tag_image = models.ImageField(upload_to='/somewhere')
    ...
def selected(request):
    tag_ids = request.GET.getlist('selected')
    selected_tags = Tags.objects.filter(id__in=tag_ids)
    return render(request, 'tag/selected.html', {'tags': selected_tags})
{% for tag in tags %}
<!-- tag is a single tag in this context -->
<img src="{{ tag.tag_image.url }}" class="img-responsive" style="width: 60px; height:80px; margin:auto;" />
{% endfor %}
如果您只想获得选定的少数,在您的视图中,您将执行以下操作:

class Tags(models.Model):
    tag_image = models.ImageField(upload_to='/somewhere')
    ...
def selected(request):
    tag_ids = request.GET.getlist('selected')
    selected_tags = Tags.objects.filter(id__in=tag_ids)
    return render(request, 'tag/selected.html', {'tags': selected_tags})
{% for tag in tags %}
<!-- tag is a single tag in this context -->
<img src="{{ tag.tag_image.url }}" class="img-responsive" style="width: 60px; height:80px; margin:auto;" />
{% endfor %}
然后,在模板中,您需要如下内容:

class Tags(models.Model):
    tag_image = models.ImageField(upload_to='/somewhere')
    ...
def selected(request):
    tag_ids = request.GET.getlist('selected')
    selected_tags = Tags.objects.filter(id__in=tag_ids)
    return render(request, 'tag/selected.html', {'tags': selected_tags})
{% for tag in tags %}
<!-- tag is a single tag in this context -->
<img src="{{ tag.tag_image.url }}" class="img-responsive" style="width: 60px; height:80px; margin:auto;" />
{% endfor %}
{%用于标记%中的标记}
{%endfor%}

希望它有助于澄清Django是如何工作的…

使用
Tag.objects.filter
和适当的参数。