0

次のモデル/ビューで構成される単純な Web アプリを作成しています。

# Models
from django.db import models

class Area(models.Model):
    name = models.CharField(max_length=40)
    def __unicode__(self):
        return self.name

class Room_Exit(models.Model):
    direction = models.CharField(max_length=20)
    secret = models.BooleanField()
    def __unicode__(self):
        return self.direction

class Room(models.Model):
    name = models.CharField(max_length=40)
    description = models.TextField()
    environment = models.CharField(max_length=40)
    secret = models.BooleanField()
    outdoors = models.BooleanField()
    area = models.ForeignKey(Area)
    exits = models.ManyToManyField(Room_Exit)
    def __unicode__(self):
        return self.name

# Views
from django.shortcuts import render_to_response, get_object_or_404
from wb.models import Area, Room_Exit, Room

def arealist(request):
    areas = Area.objects.all().order_by('name')
    return render_to_response('areas/arealist.html', {'areas': areas})

def roomlist(request, area_id):
    a = get_object_or_404(Area, pk=area_id)
    return render_to_response('areas/roomlist.html', {'area': a})

def roomdetail(request, area_id, room_id):
    a = get_object_or_404(Area, pk=area_id)
    r = get_object_or_404(Room, pk=room_id)
    return render_to_response('areas/roomdetail.html', {'room': r})

ルームのプロパティを出力するテンプレートを作成しようとしています。ManyToManyField 以外のすべてのプロパティを出力できます。2 つの Room_Exits を持つデータベースに作成された部屋があります。テンプレートは次のとおりです。

<h1>{{ room.name }}</h1>
    <ul>
    <li>
        ID: {{ room.id }}
    </li>
    <li>
        Description: {{ room.description }}
    </li>
    <li>
        Environment: {{ room.environment }}
    </li>
    <li>
        Secret room: {{ room.secret }}
    </li>
    <li>
        Outdoor room: {{ room.outdoors }}
    </li>
    <li>
        Area: {{ room.area }}
    </li>
    <li>
        Exits: 
        {% for exits in room.room_exit.all %}
            {{ exits }}
        {% endfor %}
    </li>
    </ul>

Room の Room_Exits をループしようとしていますが、返されるのは Exits: だけで、何も返されません。何が問題なのか誰か教えてもらえますか? 前もって感謝します。

4

1 に答える 1

3

テンプレートでに変更room.room_exit.allしますroom.exits.all

于 2012-12-18T17:26:27.600 に答える