Python 在Django 1.6中显示子表中的所有照片

Python 在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”对象不可编辑 我做错了什么?如果需

我是django的新手,在尝试显示包含多个图像的html页面时遇到了问题

我试图实现的是,父记录显示所有相关图像,在我下面的示例中,ShowroomDetail是父记录,ShowroomPhoto是子记录

使用Django管理屏幕,我创建了一个展厅,并作为这个展厅的孩子上传了两张图片。我可以在Django管理屏幕上查看展厅和图像,没有任何问题,并且可以看到它们是相关的

不幸的是,当我尝试使用模板显示相同的信息时,我遇到了一个错误:

“ShowroomPhoto”对象不可编辑

我做错了什么?如果需要,我将使用Django 1.6.2

以下是各种文件的内容

型号.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})
视图.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%}

    现在,您的代码可以正常工作。

    太好了,我在过去两个晚上一直在努力解决这个问题。谢谢你的及时回复