Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 15, 2011 14:24:24

DeepHill
От:
Зарегистрирован: 2011-08-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

Пытаюсь добавить templatetags (для вывода списка категорий):

templatetags/extra.py

from django import template
from vikblog.blog.models import *

register = template.Library()


def cat (CatPost):
cats=CatPost.objects.all()
return {'cat': cats}


register.inclusion_tag('cat.html')(cat)
cat.html
{% extends "base.html" %}
{% block cat %}
{% for cat in cats %}
<h2>{{ cat.title }}</h2>
{% endfor %}
{% endblock %}
base.html
<body>
<h1>Blog</h1>
{% load extra %}
{% cat cats %}
{% block cat %}
{% endblock %}
{% block content %}
{% endblock %}
</body>
Получаю ошибку: Caught VariableDoesNotExist while rendering: Failed lookup for key in u""



Офлайн

#2 Авг. 15, 2011 14:37:08

gruy
От:
Зарегистрирован: 2010-02-22
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

return {'cat': cats}
{% for cat in cats %}
Разберись с именами переменных.



Офлайн

#3 Авг. 15, 2011 16:36:54

DeepHill
От:
Зарегистрирован: 2011-08-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

Попробывал так:

from django import template
from vikblog.blog.models import *

register = template.Library()


def cat_list (CatPost):
cats=CatPost.objects.all()
return {'cats': cats}


register.inclusion_tag('cat.html')(cat_list)

{% load extra %}
{% cat_list CatPost %}

% for cat in cats %}
<h2>{{ cat.title }}</h2>
{% endfor %}
Анологично: Caught VariableDoesNotExist while rendering: Failed lookup for key in u""



Офлайн

#4 Авг. 16, 2011 00:36:06

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

На всякий случай проверьте все ли пробелы присутствуют в функции cat_list



Офлайн

#5 Авг. 16, 2011 08:12:31

gruy
От:
Зарегистрирован: 2010-02-22
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

def cat_list (CatPost):
...
{% cat_list CatPost %}
Зачем здесь имя класса модели?



Офлайн

#6 Авг. 16, 2011 20:59:18

DeepHill
От:
Зарегистрирован: 2011-08-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

gruy
def cat_list (CatPost):
...
{% cat_list CatPost %}
Зачем здесь имя класса модели?
Иначе возникает ошибка: Caught ValueError while rendering: invalid literal for float(): cats
Наверное я что-то недопонемаю, немог ли бы кто-либо подсказать на примере?



Офлайн

#7 Авг. 16, 2011 21:03:18

DeepHill
От:
Зарегистрирован: 2011-08-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

mks
На всякий случай проверьте все ли пробелы присутствуют в функции cat_list
присутсвуют…



Офлайн

#8 Авг. 19, 2011 02:29:41

stqs
От:
Зарегистрирован: 2009-02-04
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

DeepHill
Иначе возникает ошибка: Caught ValueError while rendering: invalid literal for float(): cats
Наверное я что-то недопонемаю, немог ли бы кто-либо подсказать на примере?
Все примеры в документации. А у вас какойто страгный случай. Не нужно передавать параметром темплейттегу название класса. Зачем? И вообще темплейттег ваш поидее никаких параметров не требует. Удалите и, если есть ошибка, выложите полный код. И полный трейсбек



Офлайн

#9 Авг. 19, 2011 21:25:52

DeepHill
От:
Зарегистрирован: 2011-08-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

stqs
DeepHill
Иначе возникает ошибка: Caught ValueError while rendering: invalid literal for float(): cats
Наверное я что-то недопонемаю, немог ли бы кто-либо подсказать на примере?
Все примеры в документации. А у вас какойто страгный случай. Не нужно передавать параметром темплейттегу название класса. Зачем? И вообще темплейттег ваш поидее никаких параметров не требует. Удалите и, если есть ошибка, выложите полный код. И полный трейсбек
вот весь код:

#templatetags/extra.py
from django import template
from vikblog.blog.models import *

register = template.Library()

def cats():
cats = CatPost.objects.all()
return {'cats': cats}

register.inclusion_tag('cat.html')(cats)

#cat.html
{% extends "base.html" %}
{% block cat %}
{% for cat in cats %}
<h2>{{ cat.title }}</h2>
{% endfor %}
{% endblock %}

#base.html
<body>
<h1>Blog</h1>
{% load extra %}
{% cats %}
{% block cat %}
{% endblock %}
{% block content %}
{% endblock %}
</body>
Traceback
http://pastebin.com/shGEp1n9



Офлайн

#10 Авг. 22, 2011 17:54:44

DeepHill
От:
Зарегистрирован: 2011-08-15
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите новичку с templatetags

Проблему так и не решил неужели никто не может помочь? :-(



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version