2012-07-06 4 views
0

카테고리별로 그룹화 된 재료 목록을 표시하려고합니다. 범주 ID 목록을 표시 할 때까지 가져 왔지만 이걸로 앞으로 나아갈 수는 없습니다. 여기 내 설정, 어떤 도움을 많이 주시면 감사하겠습니다.외래 키를 사용하여 django 템플릿을 재편성하는 방법

# models.py 
class IngredienceCategory(models.Model): 
    name = models.CharField(max_length=30) 

    def __unicode__(self): 
     return self.name 


class Ingredience(models.Model): 
    name = models.CharField(max_length=30) 
    category = models.ForeignKey(IngredienceCategory, null=True, blank=True) 

    def __unicode__(self): 
     return self.name 


# views.py 
def home(request): 
    ingredients = Ingredience.objects.all() 
    ingrcat = IngredienceCategory.objects.all() 

    return render_to_response('home.html', {'ingredients': ingredients, 'ingrcat': ingrcat,}) 


# home.html template 
<h2>List of items by category:</h2> 
{% regroup ingredients|dictsort:"category_id" by category_id as ingr_by_cats %} 
{% for category in ingr_by_cats %} 
    <p>{{ category.grouper }}</p> 
    <ul> 
     {% for item in ingrcat.list %} 
      <li><a href="#" id="{{ item.id }}">{{ item.name }}</a></li> 
     {% endfor %} 
    </ul> 
{% endfor %} 

내가 현재 받고 있어요 :

내가 달성하기 위해 노력하고있어
<h2>List of items by category:</h2> 
<p>1</p> 
<ul></ul> 

<p>2</p> 
<ul></ul> 

<p>3</p> 
<ul></ul> 

:

<h2>List of items by category:</h2> 
<p>Category A</p> 
<ul> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    <li>Item 3</li> 
</ul> 

<p>Category B/p> 
<ul> 
    <li>Item 4</li> 
    <li>Item 5</li> 
    <li>Item 6</li> 
</ul> 

<p>Category C</p> 
<ul> 
    <li>Item 7</li> 
    <li>Item 8</li> 
    <li>Item 9</li> 
</ul> 

답변

1

귀하의 문제가 여기에 있습니다 :

{% for item in ingrcat.list %} 

당신이해야 have :

{% for item in category.list %} 
+0

Chris가 내 문제의 절반을 해결해 주므로 항목이 이제 표시됩니다. 또 다른 문제는 카테고리 ID 대신 카테고리 이름을 표시하는 방법입니다. – finspin

+0

'category_id' 대신'category'에 의해 재 그룹화하면,'grouper'는'Category'의 인스턴스가 될 것이고 당신은 정상적으로 그것의 모든 속성에 접근 할 수 있습니다. –

+0

크리스, 고마워요! :) – finspin

관련 문제