среда, 16 июля 2008 г.

Описание Inclusion tags

С помощью 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 %}

понедельник, 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 %} # Используем свой зарегистрированный шаблонный тег

---------------------------------
---------------------------------

вторник, 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.