-2

我有这个模型:

class House(models.Model):
  name = models.CharField()

class BedRoom(models.Model):
  name = models.CharField()

class Catalog(models.Model):
  name = models.CharField()
  house = models.ForeignKey(House)
  bedroom = models.ForeignKey(BedRoom)

在 admin.py 目录是内联到 House

class CatalogInline(admin.TabularInline):
  model = Catalog

class HomeAdmin(admin.ModelAdmin):
  inline = [CatalogInline]

然后我需要查看房屋目录中的卧室列表,在家庭模型中我有:

def bedrooms(self):
  return self.catalog_set.all()

但是当我在模板中从视图中获取“房屋”时:

{% for house in houses %}
  {% for h in house %}
    <p>{{h.name}}</p>
  {% endfor %}
{% endfor %}

我收到一个错误:“目录”对象不可迭代

我做错了什么?

我应该以不同的方式定义模型吗?

4

1 回答 1

2

正如我所提到的,您似乎实际上并没有调用该bedrooms方法。我猜(这只是一个猜测)你的意思是:

{% for house in houses %}
  {% for h in house.bedrooms %}
    <p>{{h.name}}</p>
  {% endfor %}
{% endfor %}

但是,该bedrooms方法毫无意义,因为您可以轻松地做到这一点:

{% for house in houses %}
  {% for h in house.catalog_set.all %}
    <p>{{h.name}}</p>
  {% endfor %}
{% endfor %}
于 2013-06-10T20:49:52.607 回答