Найти - Пользователи
Полная версия: Несколько блоков на странице
Начало » Django » Несколько блоков на странице
1 2 3
dissdoc
Не получается сделать темплейтатг. Что делаю.
во 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
Ferroman
Внимательнее читайте документацию, там ясно написано что надо сделать {% load темплейттаг %}
Я же дал ссылку на то, как сделать inclusion tag. Почему вы не воспользовались этой инструкцией?
Александр Кошелев
Ferroman
Внимательнее читайте документацию, там ясно написано что надо сделать {% load темплейттаг %}
Эммм… там вообще-то написано, что теги во-первых во views.py не живут, а потом, что их надо подгружать, указывая имя модуля, а не самого тега :-)
Ferroman
Да, модуля, ошибся. А в остальном - разжевать и в рот положить?
dissdoc
Нет, хотя хотелось бы. И тем не менее. не очень выходит. Все как в туторе делаю, только со своей функцией. Но сервер выдает ошибку
Caught an exception while rendering: show_user_info() takes no arguments (2 given)
Ferroman
Значит не всё.
dissdoc
Пересмотрел все. Ну не получается. Я что-то упускаю. Но не пойму что. Если я правильно понял что требуется. То. В корне сайта 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
Что еще я упустил?
expee
Ты должен внутри директории с приложением (а не с проектом, как ты пытаешься) создать директорию templatetags и проверить, чтобы это приложение было в installed_apps. Вот такая структура у тебя должна быть:

somproject
—- someapp
——– templatetags
———— __init__.py
———— userinfo.py
——– …
—- …
dissdoc
Я так тоже пробовал. Не срабатывает почему-то.
пишет ошибку (я ее уже писал)
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"
Хочу просто примитивную функцию написать, чтобы проверить, что все работает и начать углубляться.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB