1. ==========================
    
  2. Django 1.8.4 release notes
    
  3. ==========================
    
  4. 
    
  5. *August 18, 2015*
    
  6. 
    
  7. Django 1.8.4 fixes a security issue and several bugs in 1.8.3.
    
  8. 
    
  9. Denial-of-service possibility in ``logout()`` view by filling session store
    
  10. ===========================================================================
    
  11. 
    
  12. Previously, a session could be created when anonymously accessing the
    
  13. ``django.contrib.auth.views.logout()`` view (provided it wasn't decorated
    
  14. with :func:`~django.contrib.auth.decorators.login_required` as done in the
    
  15. admin). This could allow an attacker to easily create many new session records
    
  16. by sending repeated requests, potentially filling up the session store or
    
  17. causing other users' session records to be evicted.
    
  18. 
    
  19. The :class:`~django.contrib.sessions.middleware.SessionMiddleware` has been
    
  20. modified to no longer create empty session records, including when
    
  21. :setting:`SESSION_SAVE_EVERY_REQUEST` is active.
    
  22. 
    
  23. Bugfixes
    
  24. ========
    
  25. 
    
  26. * Added the ability to serialize values from the newly added
    
  27.   :class:`~django.db.models.UUIDField` (:ticket:`25019`).
    
  28. 
    
  29. * Added a system check warning if the old ``TEMPLATE_*`` settings are defined
    
  30.   in addition to the new ``TEMPLATES`` setting.
    
  31. 
    
  32. * Fixed ``QuerySet.raw()`` so ``InvalidQuery`` is not raised when using the
    
  33.   ``db_column`` name of a ``ForeignKey`` field with ``primary_key=True``
    
  34.   (:ticket:`12768`).
    
  35. 
    
  36. * Prevented an exception in ``TestCase.setUpTestData()`` from leaking the
    
  37.   transaction (:ticket:`25176`).
    
  38. 
    
  39. * Fixed ``has_changed()`` method in ``contrib.postgres.forms.HStoreField``
    
  40.   (:ticket:`25215`, :ticket:`25233`).
    
  41. 
    
  42. * Fixed the recording of squashed migrations when running the ``migrate``
    
  43.   command (:ticket:`25231`).
    
  44. 
    
  45. * Moved the :ref:`unsaved model instance assignment data loss check
    
  46.   <unsaved-model-instance-check-18>` to ``Model.save()`` to allow easier usage
    
  47.   of in-memory models (:ticket:`25160`).
    
  48. 
    
  49. * Prevented ``varchar_patterns_ops`` and ``text_patterns_ops`` indexes for
    
  50.   ``ArrayField`` (:ticket:`25180`).