1. ==========================
    
  2. Django 2.1.1 release notes
    
  3. ==========================
    
  4. 
    
  5. *August 31, 2018*
    
  6. 
    
  7. Django 2.1.1 fixes several bugs in 2.1.
    
  8. 
    
  9. Bugfixes
    
  10. ========
    
  11. 
    
  12. * Fixed a race condition in ``QuerySet.update_or_create()`` that could result
    
  13.   in data loss (:ticket:`29499`).
    
  14. 
    
  15. * Fixed a regression where ``QueryDict.urlencode()`` crashed if the dictionary
    
  16.   contains a non-string value (:ticket:`29627`).
    
  17. 
    
  18. * Fixed a regression in Django 2.0 where using ``manage.py test --keepdb``
    
  19.   fails on PostgreSQL if the database exists and the user doesn't have
    
  20.   permission to create databases (:ticket:`29613`).
    
  21. 
    
  22. * Fixed a regression in Django 2.0 where combining ``Q`` objects with ``__in``
    
  23.   lookups and lists crashed (:ticket:`29643`).
    
  24. 
    
  25. * Fixed translation failure of ``DurationField``'s "overflow" error message
    
  26.   (:ticket:`29623`).
    
  27. 
    
  28. * Fixed a regression where the admin change form crashed if the user doesn't
    
  29.   have the 'add' permission to a model that uses ``TabularInline``
    
  30.   (:ticket:`29637`).
    
  31. 
    
  32. * Fixed a regression where a ``related_query_name`` reverse accessor wasn't set
    
  33.   up when a ``GenericRelation`` is declared on an abstract base model
    
  34.   (:ticket:`29653`).
    
  35. 
    
  36. * Fixed the test client's JSON serialization of a request data dictionary for
    
  37.   structured content type suffixes (:ticket:`29662`).
    
  38. 
    
  39. * Made the admin change view redirect to the changelist view after a POST if
    
  40.   the user has the 'view' permission (:ticket:`29663`).
    
  41. 
    
  42. * Fixed admin change view crash for view-only users if the form has an extra
    
  43.   form field (:ticket:`29682`).
    
  44. 
    
  45. * Fixed a regression in Django 2.0.5 where ``QuerySet.values()`` or
    
  46.   ``values_list()`` after combining querysets with ``extra()`` with
    
  47.   ``union()``, ``difference()``, or ``intersection()`` crashed due to
    
  48.   mismatching columns (:ticket:`29694`).
    
  49. 
    
  50. * Fixed crash if ``InlineModelAdmin.has_add_permission()`` doesn't accept the
    
  51.   ``obj`` argument (:ticket:`29723`).