Django 1.11.3 released

Popular Python framework received new update, which brings cool new features and bugfixes 
05 July 2017   500
Django

A high-level, free and open source Python Web framework that encourages rapid and clean development with  pragmatic design.
 

Python

Is a multi-paradigm programming language with easy-to-use syntax and many features.

Good news for all Python coders and Django users. It has new 1.11.3 version now.

List of fixed issues

  • Removed an incorrect deprecation warning about a missing renderer argument if a Widget.render() method accepts **kwargs.
  • Fixed a regression causing Model.__init__() to crash if a field has an instance only descriptor.
  • Fixed an incorrect DisallowedModelAdminLookup exception when using a nested reverse relation in list_filter.
  • Fixed admin’s FieldListFilter.get_queryset() crash on invalid input.
  • Fixed invalid HTML for a required AdminFileWidget.
  • Fixed model initialization to set the name of class-based model indexes for models that only inherit models.Model.
  • Fixed crash in admin’s inlines when a model has an inherited non-editable primary key.
  • Fixed QuerySet.union()intersection(), and difference() when combining with an EmptyQuerySet.
  • Prevented Paginator’s unordered object list warning from evaluating a QuerySet.
  • Fixed the value of redirect_field_name in LoginView’s template context. It’s now an empty string (as it is for the original function-based login() view) if the corresponding parameter isn’t sent in a request (in particular, when the login page is accessed directly).
  • Prevented attribute values in the django/forms/widgets/attrs.html template from being localized so that numeric attributes (e.g. max and min) of NumberInput work correctly.
  • Removed casting of the option value to a string in the template context of the CheckboxSelectMultipleNullBooleanSelectRadioSelectSelectMultiple, and Select widgets. In Django 1.11.1, casting was added in Python to avoid localization of numeric values in Django templates, but this made some use cases more difficult. Casting is now done in the template using the |stringformat:'s' filter.
  • Prevented a primary key alteration from adding a foreign key constraint if db_constraint=False.
  • Fixed UnboundLocalError crash in RenameField with nonexistent field.
  • Fixed a regression preventing a model field’s limit_choices_to from being evaluated when a ModelForm is instantiated.

Django 2.0 beta available now

Beta version of new major release of popular Python framework out now
17 October 2017   315

Great news for Python developers and Django fans. Beta version of Django 2.0 out now. 

What's new in Django 2.0 beta? 

  • Simplified URL routing syntax
    • The new django.urls.path() function allows a simpler, more readable URL routing syntax. For example, this example from previous Django releases:
      • url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
        
    • could be written as:
      • path('articles/<int:year>/', views.year_archive),
  • Mobile-friendly contrib.admin
    • The admin is now responsive and supports all major mobile devices. Older browser may experience varying levels of graceful degradation
  • Window expressions
    • The new Window expression allows adding an OVER clause to querysets. You can use window functions and aggregate functions in the expression.
  • Removed support for bytestrings in some places
    • To support native Python 2 strings, older Django versions had to accept both bytestrings and unicode strings. Now that Python 2 support is dropped, bytestrings should only be encountered around input/output boundaries (handling of binary fields or HTTP streams, for example). You might have to update your code to limit bytestring usage to a minimum, as Django no longer accepts bytestrings in certain code paths.

Python compatibility

Django 2.0 supports Python 3.4, 3.5, and 3.6. Developers highly recommend  and officially support the latest release of each series.

The Django 1.11.x series is the last to support Python 2.7.

Django 2.0 will be the last release series to support Python 3.4. If you plan a deployment of Python 3.4 beyond the end-of-life for Django 2.0 (April 2019), stick with Django 1.11 LTS (supported until April 2020) instead. Note, however, that the end-of-life for Python 3.4 is March 2019.

Learn more at official release notes

You can download Django 2.0 beta at official website