05/27: Опыт использования Django
Внезапно, глядя на сообщение Vadim Fint в группе django-russian про опыт использования джанго в большом проекте, написал ответ про мой опыт использования Django и мои решения.
Итак, начнём.
1) Конфигурация.
1.1) Подключение мелких компонент.
Использую симлинки. Потому что virtualenv ещё хуже, поддержка используемых несколькими проектами плагинов превращается в пытку.
1.2) Отсутствие модульной настройки приложений.
Всё планирую заточить для себя
http://github.com/jabapyth/django-appsettings , да никак руки не
доходят.
1.3) Отсутствие настройки media для приложений.
1.4) Отсутствие точек подключения в шаблонах. Есть
http://code.google.com/p/django-app-plugins/ , но они какие-то
дурацкие, потому что очевидно, что для extension_point нужно писать вьюшку, а не шаблон.
continue reading
Итак, начнём.
1) Конфигурация.
1.1) Подключение мелких компонент.
Использую симлинки. Потому что virtualenv ещё хуже, поддержка используемых несколькими проектами плагинов превращается в пытку.
1.2) Отсутствие модульной настройки приложений.
Всё планирую заточить для себя
http://github.com/jabapyth/django-appsettings , да никак руки не
доходят.
1.3) Отсутствие настройки media для приложений.
1.4) Отсутствие точек подключения в шаблонах. Есть
http://code.google.com/p/django-app-plugins/ , но они какие-то
дурацкие, потому что очевидно, что для extension_point нужно писать вьюшку, а не шаблон.
continue reading
Привет всем, в кои-то веки сподобился написать о Django.
Причём не общий пост, а решение конкретной мелкой задачки.
Итак, задача: Нужно ограничить количество записей в InlineModelAdmin.
Решение: По историческим причинам, иерархия классов в Django сильно различается для ModelAdmin и InlineModelAdmin:
Model <-(has)<- ModelAdmin ->(has)-> queryset
, но
Model <-(has)<- InlineModelAdmin ->(has)->
-> formset = BaseInlineFormSet ->(has)-> get_queryset
Итого:
class MyBaseInlineFormSet(BaseInlineFormSet):
def get_queryset(self):
sup = super(MyBaseInlineFormSet, self).get_queryset()
return sup.order_by('-id')[:5]
reg_inline(A, B, formset = MyBaseInlineFormSet, extra = 5)
Где reg_inline это упрощенный способ сделать site.register с помощью моего http://github.com/buriy/django-superadmin
08/19: git для django
Я постепенно мигрирую на git. За последнее время я избавился практически от всех своих svn репозиториев, и перевел половину bzr репозиториев на git.
Список преимуществ и недостатков git расписывать не буду, скажу только о том, что мне больше всего льстит в последнее время: это git для django.
continue reading
Список преимуществ и недостатков git расписывать не буду, скажу только о том, что мне больше всего льстит в последнее время: это git для django.
continue reading
01/4: Что такое deseb.
Вспоминаю, что когда-то я обещал писать про django.
Сегодняшняя тема — эволюция баз данных для django.
Я — один из двух создателей deseb.
deseb — это Django External Schema Evolution Branch, то есть инструмент для эволюции баз данных для django. Да, юные любители ruby on rails, это практически ваши миграции, только с более простым DSL и конструирующиеся автоматически по изменениям модели.
Ну а тем, кто с rails не знаком, расскажу поподробнее.
continue reading
Сегодняшняя тема — эволюция баз данных для django.
Я — один из двух создателей deseb.
deseb — это Django External Schema Evolution Branch, то есть инструмент для эволюции баз данных для django. Да, юные любители ruby on rails, это практически ваши миграции, только с более простым DSL и конструирующиеся автоматически по изменениям модели.
Ну а тем, кто с rails не знаком, расскажу поподробнее.
continue reading
Немного меняю формат блога.
Изначально он задумывался просто так, “чтобы был”.
Теперь буду писать раз в неделю (а может и чаще) о том, что вы хотели бы от меня услышать.
Особенно охотно буду писать статьи про Django.
Что бы вы хотели узнать от меня о Django?
О программировании на Python вообще?
О программировании вообще?
О моих других увлечениях?
О жизни/психологии/мотивации/личностном росте?
Предложения пишите в комментариях к этому посту или почтой (чтобы мне не терять список предложений).
Изначально он задумывался просто так, “чтобы был”.
Теперь буду писать раз в неделю (а может и чаще) о том, что вы хотели бы от меня услышать.
Особенно охотно буду писать статьи про Django.
Что бы вы хотели узнать от меня о Django?
О программировании на Python вообще?
О программировании вообще?
О моих других увлечениях?
О жизни/психологии/мотивации/личностном росте?
Предложения пишите в комментариях к этому посту или почтой (чтобы мне не терять список предложений).
07/10: Сегодня великий день
Цитируя Андрея Таранцова:
Сегодня будет великий день! Я начну переход с Eclipse 3.1 на Eclipse 3.3 :)
Пожелаем ему удачи в рефакторинге кода двухлетней давности.
У меня тоже сегодня великий день.
Я сегодня узнал про то, что с полями моделей в Django можно делать преинтереснейшие вещи:
Сегодня будет великий день! Я начну переход с Eclipse 3.1 на Eclipse 3.3 :)
Пожелаем ему удачи в рефакторинге кода двухлетней давности.
У меня тоже сегодня великий день.
Я сегодня узнал про то, что с полями моделей в Django можно делать преинтереснейшие вещи:
class DomainInfo(Model):
def preview(self):
return '<img src="/media/%s"/>' % self.screenshot
preview.allow_tags = True
preview.short_description = 'screenshot'
И после этого в админке можно будет наблюдать поле с названием screenshot, в котором отражаются симпатичные картинки.
05/12: Django OpenID users
I’m publishing the current state of my openid solution. It’s based on Simon Willison’s django-openid consumer
It allows developers to connect User class with OpenID accounts.
The problem with empty passwords is not solved and web interface for “user profiles” allowing to assigning openid to users is not done.
But you could login with openid and the system will create account for you, and will get data from simple registration.
I will change my solution in a way written in this google groups thread.
But I’m happy now because time passes and I need the solution right now.
My openid-solution is here
p.s. I apologize that it’s not adapted for using in your projects, better to think it’s the proof of the concept.
It allows developers to connect User class with OpenID accounts.
The problem with empty passwords is not solved and web interface for “user profiles” allowing to assigning openid to users is not done.
But you could login with openid and the system will create account for you, and will get data from simple registration.
I will change my solution in a way written in this google groups thread.
But I’m happy now because time passes and I need the solution right now.
My openid-solution is here
p.s. I apologize that it’s not adapted for using in your projects, better to think it’s the proof of the concept.
Posted by bur on May 12, 2007
08/31: Прикрутил RSS
Наконец-то прикрутил RSS. Это было бы невыносимо просто, если я бы знал, что если сделать url-regexp на корень сайта, который работает по include(), то он из него в следующий url-regexp не пойдет, и что сообщение об ошибке говорит именно об этом. Вот так абсолютно неинформативное сообщение об ошибке дало мне вволю потрразобраться с feed-ами. :)
07/30: Блог, написанный за час
Когда я открыл для себя django, мне стало интересно, как можно написать блог за час. Поглядев building-blog-django я понял, что нужно делать (в смысле, copy-paste еще никто не отменял). Однако оно не хотело работать. Виною был pre-magic-removal билд django, но я никак не мог найти более позднюю версию для post-magic-removal билда. Ну и тем более не мог понять, на что нужно заменять нерабочие участки кода. Увы, полной интуитивности не получилось.
Потом, помучавшись и набравшись опыта (часов 6 прошло, наверное), я понял, что лучше использовать родные решения. Взял weblog с сайта django, взял библиотечку tags с сайта http://softwaremaniacs.org/.
После этого осталось еще прикрутить понравившийся мне стиль с системы блоггинга nucleus.
Я в нем исправил только одну штуку — цвет ссылок.
Профессионального дизайнерского чувства стиля у меня нет. Зато есть чувство чертежного стиля, когда сразу замечаешь неровные линии или криво нестыкующиеся блоки, и еще есть чувство локтя, то есть иногда очень хочется спросить у товарищей по поводу полученного результата. Например, сейчас очень хочется. Вам нравится этот сайт? :)
Потом, помучавшись и набравшись опыта (часов 6 прошло, наверное), я понял, что лучше использовать родные решения. Взял weblog с сайта django, взял библиотечку tags с сайта http://softwaremaniacs.org/.
После этого осталось еще прикрутить понравившийся мне стиль с системы блоггинга nucleus.
Я в нем исправил только одну штуку — цвет ссылок.
Профессионального дизайнерского чувства стиля у меня нет. Зато есть чувство чертежного стиля, когда сразу замечаешь неровные линии или криво нестыкующиеся блоки, и еще есть чувство локтя, то есть иногда очень хочется спросить у товарищей по поводу полученного результата. Например, сейчас очень хочется. Вам нравится этот сайт? :)