모든 페이지의 내비게이션 막대에 데이터를 표시 할 수 있도록 포함 태그를 만들려고합니다. 태그는 "base.html"에 포함되어 어디에나 표시되어야합니다.Django 포함 태그가 데이터를 표시하지 않습니다.
tags.py menu.html 템플릿이 비어 있고 데이터를 표시되지 않는 몇 가지 이유를 들어
@register.inclusion_tag('menu.html')
def show_hoods(HoodList):
gethoods = Hood.objects.all()
return {'gethoods': gethoods}
menu.html
{% for hood in gethoods %}
<h3>{{ hood.name }}</h3>
{% endfor %}
.
또한 menu.html을 실행하면 간단한 {% include 'menu.html'%}이 (가) base.html에서 작동합니까? 윌은 자동으로 렌더링됩니까?
편집 : 아래의 의견에 따라 , 상기 코드는 inclusion_tag가 {%는 % 포함}하지만 {% load %}
대신 사용되는로드되지 않는 그러나 base.html 코드가 올바르지 맞다.
는 base.html
{% load tags %}
{% show_hoods hoodlist %}
에게 피드백에 대한 감사를 수정!
포함 태그를 base.html에 어떻게 추가하고 있습니까? 또한 HoodList는 무엇입니까? –
HoodList는 요청의 이름 일 뿐이므로 이름을 "요청"으로 변경해야합니까? base.html에 따라 {% include %} 태그를 사용할 계획이었습니다. – WayBehind
포함 태그를 이름을 사용하여 추가합니다. 따라서 base.html에 {% show_hoods %}를 추가하면 menu.html을 Hood 객체 목록으로 렌더링해야합니다. menu.html을 직접 보면 menu.html에서 show_hoods에서 전달한 컨텍스트 변수 (gethoods)가 필요하므로 빈 것으로 표시됩니다. –