打破{%load rango_template_tags%}上的模板

时间:2016-11-09 14:52:43

标签: python django django-views

所以我在使用Tango With Django这本书的教程的一半时,拼命地努力接收关于Django的尽可能多的信息。

现在我正在尝试设置一个列出所有类别的模板,但我收到错误

invalid syntax (rango_template_tags.py, line 8)

我不知道为什么我会得到这一行,绝对没有我用5 +次书检查它但我找不到任何看起来错误的地方。谁能告诉我为什么我会收到这个错误。

base.html文件

 {% load rango_template_tags %}
 <div> 
    {% block sidebar_block %} 
         {% get_category_list %}  
    {% endblock %}
 </div>
 # This file has more within it these are the new pieces of code that break the template system. If these are in it wont work.

rango_template_tags

 from django import template
 from rango.models import Category

 register = template.Library()

 @register.inclusion_tag('rango/cats.html')
 def get_category_list():
 return {'cats' Category.objects.all()}

cats.html

<ul>
  {% if cats %}
    {% for c in cats %}
        <li><a href="{% url 'show_category' c.slug %}">{{ c.name }}</a></li>
    {% endfor %}
  {% else %}
      <li><strong> There ar eno categories presen. </strong></li>
  {% endif %}
</ul>

1 个答案:

答案 0 :(得分:1)

  

在python词典中,每个键都通过冒号(:)

与其值分开

将你的返回声明从{'cats'Category.objects.all()}更改为{'cats':Category.objects.all()},并且函数或块中的代码应该被视为

 from django import template
 from rango.models import Category

 register = template.Library()

 @register.inclusion_tag('rango/cats.html')
 def get_category_list():
     return {'cats': Category.objects.all()}