Django 1.11.3 release notes

    Django 1.11.3 fixes several bugs in 1.11.2.

    • Removed an incorrect deprecation warning about a missing argument if a Widget.render() method accepts **kwargs ().
    • Fixed a regression causing Model.__init__() to crash if a field has an instance only descriptor (#28269).
    • Fixed an incorrect DisallowedModelAdminLookup exception when using a nested reverse relation in list_filter ().
    • Fixed invalid HTML for a required AdminFileWidget (#28278).
    • 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 (#27967).
    • Fixed QuerySet.union(), intersection(), and when combining with an EmptyQuerySet ().
    • 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) (#28229).
    • 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 , NullBooleanSelect, RadioSelect, SelectMultiple, and Select widgets (#28176). 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 a regression preventing a model field’s limit_choices_to from being evaluated when a ModelForm is instantiated (#28345).