title: Nested loop in Django template
body: <p>I can't get my head around this. I need to somehow access the object in the parent loop but I'm not sure how. Here is what I've come up with so far. I marked the problematic area in the code with <strong>XXX</strong>:</p>
  
  <p><strong>Template:</strong></p>
  
  <pre><code>{% for item in ingrcat %}
      &lt;h2&gt;{{ item.name }}&lt;/h2&gt;
      &lt;ul&gt;
          {% for ingr in XXX %}
          &lt;li&gt;&lt;a href="#" id="i{{ ingr.id }}"&gt;{{ ingr.name }}&lt;/a&gt;&lt;/li&gt;
          {% endfor %}
      &lt;/ul&gt;
  {% endfor %}
  </code></pre>
  
  <p><strong>XXX</strong> - should be a list of ingredients belonging to the ingredience category which is currently being looped through in the parent loop.</p>
  
  <p><strong>View:</strong></p>
  
  <pre><code>def home(request):
      if request.user.is_authenticated():
          username = request.user.username
          email = request.user.email
          foods = Food.objects.filter(user=request.user).order_by('name')
          ingredients = Ingredience.objects.filter(user=request.user).order_by('name')
          ingrcat = IngredienceCategory.objects.filter(user=request.user)
  
          context = {}
          for i in ingredients:
              context[i.category.name.lower()] = context.get(i.category.name.lower(), []) + [i]
  
          newcontext = {'foods': foods, 'ingredients': ingredients, 'ingrcat': ingrcat, 'username': username, 'email': email,}
      else:
          context = {}
          newcontext = {}
  
      context = dict(context.items() + newcontext.items())
  
      return render_to_response('home.html', context, context_instance=RequestContext(request))
  </code></pre>
  
  <p><strong>Models:</strong></p>
  
  <pre><code>from django.db import models
  from django.contrib.auth.models import User
  
  class IngredienceCategory(models.Model):
      name = models.CharField(max_length=30)
      user = models.ForeignKey(User, null=True, blank=True)
  
      class Meta:
          verbose_name_plural = "Ingredience Categories"
  
      def __unicode__(self):
          return self.name
  
  
  class Ingredience(models.Model):
      name = models.CharField(max_length=30)
      category = models.ForeignKey(IngredienceCategory, null=True, blank=True)
      user = models.ForeignKey(User, null=True, blank=True)
  
      class Meta:
           verbose_name_plural = "Ingredients"
  
      def __unicode__(self):
          return self.name
  
  
  class Food(models.Model):
      name = models.CharField(max_length=30)
      ingredients = models.ManyToManyField(Ingredience)
      html_id = models.CharField(max_length=30, null=True, blank=True)
      user = models.ForeignKey(User, null=True, blank=True)
  
      class Meta:
          verbose_name_plural = "Foods"
  
      def __unicode__(self):
          return self.name
  </code></pre>