Пользователь
0,0
рейтинг
5 января 2013 в 16:52

Разработка → Вышел 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
Александр @shattl
карма
7,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (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(...)

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