В транк добавлен бранч Queryset-refactor, который позволяет легко наследовать модели Django, об этом уже давно всем известно. Но наследование - не единственная альтернатива, можно применять Monkey patching.
Главная идея в том, что Monkey patching также позволяет добавлять не только поля, но и функции.
Например, так для модели User добавляю поле OpenID, и еще дополнительную функцию, возвращающую ник, если имя не задано
from django.contrib.auth.models import User

User.add_to_class('openid', models.CharField(max_length=250,blank=True))

def get_user_name(self):
    if self.first_name or self.last_name:
        return self.first_name + " " + self.last_name
    return self.username

User.add_to_class("get_user_name",get_user_name)
Явные плюсы метода:
не создаются дополнительные таблицы
работа с моделью осуществляется всеми стандартными средствами Django.

11 Votes | Average: 5 out of 511 Votes | Average: 5 out of 511 Votes | Average: 5 out of 511 Votes | Average: 5 out of 511 Votes | Average: 5 out of 5 (11 votes, average: 5 out of 5)
Loading ... Loading ...
Для задачи хранения состояний множества элементов иногда используются битовые маски. Например, о прочтении комментариев к статьям для каждого пользователя. И хотя в этом случае лучше хранить время последнего захода в конкретную тему, но могут возникнуть и другие задачи, в которых необходимо запоминать бинарные данные для элементов, не содержащих дату.

Можно использовать M2M связь между User и объектом. Главный недостаток - это большие издержки на индекс и количество записей, если пользователей и объектов наблюдения очень много. Но можно использовать битовые маски, лишенные этого недостатка.

(more...)

6 Votes | Average: 4.3 out of 56 Votes | Average: 4.3 out of 56 Votes | Average: 4.3 out of 56 Votes | Average: 4.3 out of 56 Votes | Average: 4.3 out of 5 (6 votes, average: 4.3 out of 5)
Loading ... Loading ...
Результаты наблюдения за действиями поисковых ботов в течении 110 дней на одном среднестатистическом русскоязычном сайте с несколькими тысячами уников (4-6 тысяч).
Вместе боты посетили сайт около 1.092.000 раз, что соответствует почти 10 тысяч посещений в день.
Данные по убыванию посещений:
ya.ru	526505
Google.com	285329
Yahoo!	174940
twiceler	50672
Archive.org	29262
MSN	23366
majestic12.co.uk	2062
Интересные наблюдения:
  • Активность яндекса равна активности всех остальных вместе взятых :)
  • Довольно активен какой-то новый поисковик twiceler (cuill.com).
    Информация на их сайте в духе "подождите, скоро будет..."
  • Вступил в строй общественный поисковик majestic12.co.uk, посмотрим, что из этого получится.

0 Votes | Average: 0 out of 50 Votes | Average: 0 out of 50 Votes | Average: 0 out of 50 Votes | Average: 0 out of 50 Votes | Average: 0 out of 5 (0 votes, average: 0 out of 5)
Loading ... Loading ...
Jared Kuolt создал небольшой скрипт кэширования. Всем замечателен: и простотой и размером.

Но у скрипта StaticGenerator и nginx-конфига, приведенного Jared-ом, есть недостатки:
1) актуально только для сайтов без регистрации;
2) работа с ссылками только простого вида;
3) генерация только при изменении/добавлении контента и/или комментариев.

Я исправил эти недочеты, добавил кое-что интересное в скрипт, и получился StaticGenerator Pro.

(more...)

16 Votes | Average: 4.9 out of 516 Votes | Average: 4.9 out of 516 Votes | Average: 4.9 out of 516 Votes | Average: 4.9 out of 516 Votes | Average: 4.9 out of 5 (16 votes, average: 4.9 out of 5)
Loading ... Loading ...
Martin Mahner написал небольшой туториал о том, как в админке django добавить миниатюрки картинок (Thumbnails). Здесь я привожу ее перевод.
Update 03.Apr.08

(more...)

7 Votes | Average: 4.6 out of 57 Votes | Average: 4.6 out of 57 Votes | Average: 4.6 out of 57 Votes | Average: 4.6 out of 57 Votes | Average: 4.6 out of 5 (7 votes, average: 4.6 out of 5)
Loading ... Loading ...

2 ... 6

Powered by Django.