Skip to content

Instantly share code, notes, and snippets.

@kennethlove
Created July 23, 2012 21:37
Show Gist options
  • Save kennethlove/3166383 to your computer and use it in GitHub Desktop.
Save kennethlove/3166383 to your computer and use it in GitHub Desktop.
{% for area in areas %}
<h1>{{ area.name }}</h1>
<ul>
{% for computer in area.computers.all %}
<li>{{ computer.name }}</li>
{% endfor %}
</ul>
{% endfor %
class Area(models.Model):
name = models.CharField(max_length=255)
class Computer(models.Model):
name = models.CharField(max_length=255)
area = models.ForeignKey(Area, related_name="computers")
def areas(request):
queryset = Area.objects.select_related("computers").all()
return render_to_response(request, {"areas": queryset}, "areas.html")
@Back2Basics
Copy link

So taking this one step further would look like.


models.py

class Building(models.Model):
    name = models.CharField(max_length=255)

class Area(models.Model):
    name = models.CharField(max_length=255)
    building = models.ForeignKey(Building, related_name="areas")

class Computer(models.Model):
    name = models.CharField(max_length=255)
    area = models.ForeignKey(Area, related_name="computers")

areas.html

{% for building in buildings%}
<h1> {{building.BuildingName}} </h1>

{% for area in building.area.all %}
<h2>{{ area.name }}</h2>

<ul>
{% for computer in area.computers.all %}
<li>{{ computer.name }}</li>
{% endfor %}
</ul>
{% endfor %}

views.py

def buildings(request):
    queryset = Building.objects.select_related("areas", "areas__computers").objects.all()
    return render_to_response(request, {"buildings": queryset}, "areas.html")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment