2016-11-09 59 views
1

所以,我通過使用Tango Django這本書的教程中途嘗試拼命地盡力獲取儘可能多的關於Django的信息。在{%load rango_template_tags%}上打破模板

現在我想建立一個模板,列出所有類別的,但我得到一個錯誤

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

@DanielRoseman你可以進一步細談嗎? –

+0

你用書5 +次檢查過,我不知道那本書是哪本書?縮進'return'行並在字典鍵(''cats'')後面加上冒號。 – Selcuk

回答

1

在Python字典,每個按鍵從它的值由冒號(:)分隔

從{ '貓' Category.objects.all()}更改return語句{ '貓':類別。 object.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()} 
+0

請提供一些解釋以提高答案的質量。請參閱此處以獲取[寫作答案](http://stackoverflow.com/help/how-to-answer)上的幫助。 – jacefarm