Форум сайта python.su
1
Офлайн
0
Не получается сделать темплейтатг. Что делаю.
во 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
Офлайн
1
Внимательнее читайте документацию, там ясно написано что надо сделать {% load темплейттаг %}
Я же дал ссылку на то, как сделать inclusion tag. Почему вы не воспользовались этой инструкцией?
Отредактировано (Янв. 16, 2010 21:11:48)
Офлайн
2
FerromanЭммм… там вообще-то написано, что теги во-первых во views.py не живут, а потом, что их надо подгружать, указывая имя модуля, а не самого тега :-)
Внимательнее читайте документацию, там ясно написано что надо сделать {% load темплейттаг %}
Офлайн
1
Да, модуля, ошибся. А в остальном - разжевать и в рот положить?
Офлайн
0
Нет, хотя хотелось бы. И тем не менее. не очень выходит. Все как в туторе делаю, только со своей функцией. Но сервер выдает ошибку
Caught an exception while rendering: show_user_info() takes no arguments (2 given)
Офлайн
1
Значит не всё.
Офлайн
0
Пересмотрел все. Ну не получается. Я что-то упускаю. Но не пойму что. Если я правильно понял что требуется. То. В корне сайта 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
Офлайн
0
Ты должен внутри директории с приложением (а не с проектом, как ты пытаешься) создать директорию templatetags и проверить, чтобы это приложение было в installed_apps. Вот такая структура у тебя должна быть:
somproject
—- someapp
——– templatetags
———— __init__.py
———— userinfo.py
——– …
—- …
Офлайн
0
Я так тоже пробовал. Не срабатывает почему-то.
пишет ошибку (я ее уже писал)
Caught an exception while rendering: show_user_info() takes no arguments (2 given)
from django.template import Library
register = Library()
@register.tag(name="show_user_info")
def show_user_info():
return "is_good"
Офлайн