С помощью Inclusion tags можно выводить одни и те же данные на каждой странице вашего сайта, например в сайдбаре вывести список пользователей. С помощью simple tags такое сделать весьма сложно, мне лично не удалось.
Inclusion tags очень похожи на simple tags.
# templatetags/give_me_users.py
from django import template
from accounts.models import User
register = template.Library()
@register.inclusion_tag("show_users_list.html")
def show_users():
....users = User.objects.all()
....return {'users': users}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Создаем файл show_users_list.html в каталоге темплейтов,
содержимое:
{% for user in users %}
....{{ user }}
{% endfor %}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Теперь открываем какой-то свой шаблон, например base.html :)
и вставляем туда:
{% load give_me_users %} # подгружаем наш самопальный inclusion tag
{% show_users %}
среда, 16 июля 2008 г.
понедельник, 14 июля 2008 г.
Django. Шаблонные теги. Simple tags
Простой пример который покажет сам принцип работы простого шаблонного тега.
(simple tags)
Такие теги можно использовать только в самых-самых простых случаях, например
когда нужно вывести на всех страницах сайта число\дату\строку.
Структура:
my_app
......models.py
......views.py
......templatetags
.................__init__.py # Обязательно
.................get_name.py
---------------------------------
---------------------------------
В get_name.py пишем:
from django import template
register = template.Library()
register.simple_tag # регистрация шаблонного тега
def get_my_string():
....return "Hello, I am tag"
---------------------------------
---------------------------------
Теперь переходим к шаблону.
{% load get_name %} # Подгружаем шаблонные теги
{% get_my_string %} # Используем свой зарегистрированный шаблонный тег
---------------------------------
---------------------------------
(simple tags)
Такие теги можно использовать только в самых-самых простых случаях, например
когда нужно вывести на всех страницах сайта число\дату\строку.
Структура:
my_app
......models.py
......views.py
......templatetags
.................__init__.py # Обязательно
.................get_name.py
---------------------------------
---------------------------------
В get_name.py пишем:
from django import template
register = template.Library()
register.simple_tag # регистрация шаблонного тега
def get_my_string():
....return "Hello, I am tag"
---------------------------------
---------------------------------
Теперь переходим к шаблону.
{% load get_name %} # Подгружаем шаблонные теги
{% get_my_string %} # Используем свой зарегистрированный шаблонный тег
---------------------------------
---------------------------------
вторник, 1 июля 2008 г.
How to make models.py if you have old project 's database
python mysite/manage.py inspectdb > mysite/myapp/models.py
Before you must configure your settings.py.
Before you must configure your settings.py.
Подписаться на:
Сообщения (Atom)