Вышел Django 1.5 Release Candidate

    Вчера на официальном сайте Django появилось сообщение о доступности Django 1.5 Release Candidate.

    Пара слов о нововведениях:
    • Конфигурируемая модель User. Теперь можно использовать стандартную авторизацию, дополняя модель своими полями.
    • Поддержка Python 3. Прекращение поддержки Python 2.5. Минимальная версия теперь — 2.6.5
    • Задание конкретных полей при сохранении модели — параметр update_fields в Model.save()
    • Кэширование связанных моделей
    • Явное указание потокового ответа (класс StreamingHttpResponse)
    • Тег {% verbatim %}, рендеринг внутри которого не происходит (удобно для javascript-шаблонов)

    Скачать Django 1.5 RC
    Метки:
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 19
    • +2
      А так же есть изменения ломающие совместимость, например убрали direct_to_template, теперь надо использовать TemplateView, к изменениям {% url %} уже готовили, ну и остальное лучше почитать в release notes. Сегодня пробовал погонять тесты на проекте, мой код работает, а вот на django-registration из-за direct_to_template возникают проблемы, патч уже есть, как и для custom user models.
      Python 3 всё же для продакшена запланирован на 1.6, так что торопится не надо, а вот подготовить свой код и помочь другим самое время.
      • +1
        direct_to_template is deprecated c 1.3 версии.
      • +5
        Радует «Конфигурируемая модель User», а то наболело уже.
        • 0
          То, как они её сделали скорее расстраивает, чем радует… хуже даже придумать сложно. Да, релиза через 2 подтянется большинство проектов на эту систему: author = models.ForeignKey(settings.AUTH_USER_MODEL), но зачем? Ну правда, что сложного было в том, чтобы сделать django.contrib.auth.models.User переменной, импортирующей нужный класс?
          • +1
            Учитывая, что большинство проектов используют профили, то просто так мигрировать всё равно не получится. А вариант решения через абстрактный класс отличный.
            • 0
              Я не проводил исследования, но открыл навскидку github по поиску «django.contrib.auth.models» и профилями страдали буквально пара проектов из 20 открытых. Так что было бы существенно проще мигрировать если бы сделали, как я предложил выше, но я не вижу смысл разглагольствовать — уже всё сделано…
            • +3
              Я просто где-нить прописываю:
              try:
                  from django.contrib.auth import get_user_model
              except ImportError: # django < 1.5
                  from django.contrib.auth.models import User
              else:
                  User = get_user_model()
              

              А остальное остается неизменным. Везде так-же как и раньше:
              author = models.ForeignKey(User)
              

              Меня вобщем все устраивает как они это сделали.
              • –2
                Ага-ага и всё это вместо того чтобы сделать вот так:

                 
                


                Да, именно — ничего не нужно было бы делать… Да, у меня уже куча форков именно из-за таких вот фиксов.
                • +1
                  Да, у меня уже куча форков именно из-за таких вот фиксов.

                  Все правильно! Только пулл-реквесты то отправляйте)) Чтобы не пользоваться своими форками а добавлять поддержку 1.5 в ориг коде.
                  • 0
                    Проекты достаточно часто погибают, так что отправляя pull-request я всё-равно остаюсь уже на своём форке.
                • 0
                  Простите за иронию. :)

                  Вот именно так и появлялся PHP…
              • 0
                Часто встречаю, что людей печалит неконтролируемая модель «User». Я последний раз джангу тыкал года три назад, так что уж и не помню: для джанги в принципе нет других средств для авторизации/аутенфикации кроме как дефолтной модели User? Спрашиваю чисто ради интересу т.к. в рельсах, например, есть миллион гемов для аутенфикации.
                • 0
                  В 1.4 или 1.3 сделали authentication backends — так что авторизоваться можно было, но всё-равно пользователи были намертво завязаны на джанговский User — есть с пяток разных подходов по кастомизации этого дела — от манкипатчинга до отдельной модели Profile, связанной One-to-One с User.
                  • 0
                    Спасибо. Да уж, это действительно странно.
              • +5
                Хотелось бы отметить что я являюсь координатором русских переводчиков Django на Transifex, вчера добили перевод до 100%, но все-же, если у кого-то есть свободное время и желание иметь качественный русский перевод Django, зайдите посмотрите на то что есть и возможно предложите более качественный перевод. Который как-раз войдет в django 1.5(вроде еще не заморозили версию переводов). Но в любом случае в 1.6 точно войдет.
                Если кто-то хочет вступить в группу переводчиков Django, пишите в личку если вдруг надо срочно вступить и заняться переводом(тут я быстрее отреагирую и приму запрос).
                • 0
                  желание иметь качественный русский перевод

                  «Вечером я сделал звонок, после чего мы имели ужин». Надеюсь, Django вы переводите лучше.
                  • 0
                    Я на самом деле очень мало чего там переводил. Но вообще, перевод конечно-же не идеален, поэтому я и написал чтобы кто-нибудь еще присоединился если есть свободное время и желание улучшить то что сейчас есть.
                • 0
                  Поддержка Python 3. Прекращение поддержки Python 2.5. Минимальная версия теперь — 2.6.5
                  Поддержка Python 3 не полная, нет всяких PEP 3107.
                  Надеюсь, в следующих версиях появится.
                  • +1
                    > Задание конкретных полей при сохранении модели — параметр update_fields в Model.save()
                    Годная фича, надоело писать Foo.objects.filter(pk=foo.pk).update(...)

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.