1. ==========================
    
  2. Django 3.0.3 release notes
    
  3. ==========================
    
  4. 
    
  5. *February 3, 2020*
    
  6. 
    
  7. Django 3.0.3 fixes a security issue and several bugs in 3.0.2.
    
  8. 
    
  9. CVE-2020-7471: Potential SQL injection via ``StringAgg(delimiter)``
    
  10. ===================================================================
    
  11. 
    
  12. :class:`~django.contrib.postgres.aggregates.StringAgg` aggregation function was
    
  13. subject to SQL injection, using a suitably crafted ``delimiter``.
    
  14. 
    
  15. Bugfixes
    
  16. ========
    
  17. 
    
  18. * Fixed a regression in Django 3.0 that caused a crash when subtracting
    
  19.   ``DateField``, ``DateTimeField``, or ``TimeField`` from a ``Subquery()``
    
  20.   annotation (:ticket:`31133`).
    
  21. 
    
  22. * Fixed a regression in Django 3.0 where ``QuerySet.values()`` and
    
  23.   ``values_list()`` crashed if a queryset contained an aggregation and
    
  24.   ``Exists()`` annotation (:ticket:`31136`).
    
  25. 
    
  26. * Relaxed the system check added in Django 3.0 to reallow use of a sublanguage
    
  27.   in the :setting:`LANGUAGE_CODE` setting, when a base language is available in
    
  28.   Django but the sublanguage is not (:ticket:`31141`).
    
  29. 
    
  30. * Added support for using enumeration types ``TextChoices``,
    
  31.   ``IntegerChoices``, and ``Choices`` in templates (:ticket:`31154`).
    
  32. 
    
  33. * Fixed a system check to ensure the ``max_length`` attribute fits the longest
    
  34.   choice, when a named group contains only non-string values (:ticket:`31155`).
    
  35. 
    
  36. * Fixed a regression in Django 2.2 that caused a crash of
    
  37.   :class:`~django.contrib.postgres.aggregates.ArrayAgg` and
    
  38.   :class:`~django.contrib.postgres.aggregates.StringAgg` with ``filter``
    
  39.   argument when used in a ``Subquery`` (:ticket:`31097`).
    
  40. 
    
  41. * Fixed a regression in Django 2.2.7 that caused
    
  42.   :meth:`~django.db.models.Model.get_FOO_display` to work incorrectly when
    
  43.   overriding inherited choices (:ticket:`31124`).
    
  44. 
    
  45. * Fixed a regression in Django 3.0 that caused a crash of
    
  46.   ``QuerySet.prefetch_related()`` for ``GenericForeignKey`` with a custom
    
  47.   ``ContentType`` foreign key (:ticket:`31190`).