Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 14, 2010 11:59:46

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Офлайн

#2 Янв. 16, 2010 19:41:32

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

Несколько блоков на странице

Не получается сделать темплейтатг. Что делаю.
во view.py

register = Library()
def show_user_info():
return "is_good"
register.tag('show_user_info', show_user_info)
В шаблон пихаю простой код
{% show_user_info %}
Но сервер выдает ошибку
Request Method:  	GET
Request URL: http://localhost/rin/bugcatcher/
Exception Type: TemplateSyntaxError
Exception Value:

Invalid block tag: 'show_user_info'

Exception Location: C:\server\python\lib\site-packages\django\template\__init__.py in invalid_block_tag, line 335
Python Executable: C:\server\apache\bin\httpd.exe
Python Version: 2.5.4



Офлайн

#3 Янв. 16, 2010 21:11:18

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Внимательнее читайте документацию, там ясно написано что надо сделать {% load темплейттаг %}
Я же дал ссылку на то, как сделать inclusion tag. Почему вы не воспользовались этой инструкцией?

Отредактировано (Янв. 16, 2010 21:11:48)

Офлайн

#4 Янв. 16, 2010 21:28:34

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Ferroman
Внимательнее читайте документацию, там ясно написано что надо сделать {% load темплейттаг %}
Эммм… там вообще-то написано, что теги во-первых во views.py не живут, а потом, что их надо подгружать, указывая имя модуля, а не самого тега :-)



Офлайн

#5 Янв. 16, 2010 22:46:52

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Да, модуля, ошибся. А в остальном - разжевать и в рот положить?

Офлайн

#6 Янв. 16, 2010 23:19:47

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

Несколько блоков на странице

Нет, хотя хотелось бы. И тем не менее. не очень выходит. Все как в туторе делаю, только со своей функцией. Но сервер выдает ошибку

Caught an exception while rendering: show_user_info() takes no arguments (2 given)



Офлайн

#7 Янв. 16, 2010 23:52:51

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Значит не всё.

Офлайн

#8 Янв. 20, 2010 19:37:33

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

Несколько блоков на странице

Пересмотрел все. Ну не получается. Я что-то упускаю. Но не пойму что. Если я правильно понял что требуется. То. В корне сайта mysite создаю директорию templatetags в которой есть __init__.py и файл userinfo.py

В settings.py в раздел INSTALLED_APPS дописываю строчку

'mysite.templatetags',
В результате все равно ошибка такая сервер говорит
'userinfo' is not a valid tag library: Could not load template library from django.templatetags.userinfo, No module named userinfo
Что еще я упустил?



Офлайн

#9 Янв. 20, 2010 20:12:53

expee
От:
Зарегистрирован: 2009-12-21
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Ты должен внутри директории с приложением (а не с проектом, как ты пытаешься) создать директорию templatetags и проверить, чтобы это приложение было в installed_apps. Вот такая структура у тебя должна быть:

somproject
—- someapp
——– templatetags
———— __init__.py
———— userinfo.py
——– …
—- …



Офлайн

#10 Янв. 20, 2010 20:31:00

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

Несколько блоков на странице

Я так тоже пробовал. Не срабатывает почему-то.
пишет ошибку (я ее уже писал)

Caught an exception while rendering: show_user_info() takes no arguments (2 given)
Сам код userinfo.py
from django.template import Library

register = Library()

@register.tag(name="show_user_info")
def show_user_info():
return "is_good"
Хочу просто примитивную функцию написать, чтобы проверить, что все работает и начать углубляться.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version