Python 在Django 1.6中显示子表中的所有照片
我是django的新手,在尝试显示包含多个图像的html页面时遇到了问题 我试图实现的是,父记录显示所有相关图像,在我下面的示例中,ShowroomDetail是父记录,ShowroomPhoto是子记录 使用Django管理屏幕,我创建了一个展厅,并作为这个展厅的孩子上传了两张图片。我可以在Django管理屏幕上查看展厅和图像,没有任何问题,并且可以看到它们是相关的 不幸的是,当我尝试使用模板显示相同的信息时,我遇到了一个错误: “ShowroomPhoto”对象不可编辑 我做错了什么?如果需要,我将使用Django 1.6.2 以下是各种文件的内容 型号.pyPython 在Django 1.6中显示子表中的所有照片,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,我是django的新手,在尝试显示包含多个图像的html页面时遇到了问题 我试图实现的是,父记录显示所有相关图像,在我下面的示例中,ShowroomDetail是父记录,ShowroomPhoto是子记录 使用Django管理屏幕,我创建了一个展厅,并作为这个展厅的孩子上传了两张图片。我可以在Django管理屏幕上查看展厅和图像,没有任何问题,并且可以看到它们是相关的 不幸的是,当我尝试使用模板显示相同的信息时,我遇到了一个错误: “ShowroomPhoto”对象不可编辑 我做错了什么?如果需
from django.db import models
# Create your models here.
class ShowroomDetail(models.Model):
title = models.CharField(max_length=1000)
description = models.CharField(max_length=4000)
class ShowroomPhoto(models.Model):
showroom = models.ForeignKey(ShowroomDetail, related_name='photos')
photo = models.ImageField(upload_to='images/')
from django.shortcuts import render
from django.http import Http404, HttpResponse
from showroom.models import ShowroomDetail, ShowroomPhoto
# Create your views here.
def Displayshowroom(request):
showroom = ShowroomDetail.objects.all()[0]
photos = ShowroomPhoto.objects.all()[showroom.id]
return render(request, 'showroom.html', {'showroom': showroom, 'photos': photos})
视图.py
from django.db import models
# Create your models here.
class ShowroomDetail(models.Model):
title = models.CharField(max_length=1000)
description = models.CharField(max_length=4000)
class ShowroomPhoto(models.Model):
showroom = models.ForeignKey(ShowroomDetail, related_name='photos')
photo = models.ImageField(upload_to='images/')
from django.shortcuts import render
from django.http import Http404, HttpResponse
from showroom.models import ShowroomDetail, ShowroomPhoto
# Create your views here.
def Displayshowroom(request):
showroom = ShowroomDetail.objects.all()[0]
photos = ShowroomPhoto.objects.all()[showroom.id]
return render(request, 'showroom.html', {'showroom': showroom, 'photos': photos})
showroom.html
<html>
<head>
<title>Showroom</title>
</head>
<body>
<ul>
<li>{{ showroom.title }}</li>
<li>{{ showroom.description }}</li>
<li>{{ showroom.id }}</li>
{% for photo in photos %}
<li><img src="{{ photo.url }}" height="420"/></li>
{% endfor %}
</u
</body>
</html>
陈列室
- {{showroom.title}
- {{showroom.description}}
- {{showroom.id}
{%用于照片中的照片%}
{%endfor%}
执行
photos=ShowroomPhoto.objects.all()[showroom.id]
操作时,您正在检索单个对象,而不是由于[]
(下标)而检索的查询集
您可能是想过滤:
改变
photos = ShowroomPhoto.objects.all()[showroom.id]
到
此外,在模板中:
{% for photo in photos %}
<li><img src="{{ photo.url }}" height="420"/></li>
{% endfor %}
{%用于照片中的照片%}
{%endfor%}
应该是
{% for photo in photos %}
<li><img src="{{ photo.photo.url }}" height="420"/></li>
{% endfor %}
{%用于照片中的照片%}
{%endfor%}
现在,您的代码可以正常工作。太好了,我在过去两个晚上一直在努力解决这个问题。谢谢你的及时回复