Fixed #7231. Add ``join`` argument to ``QuerySet.extra()`` method.
Fixed #8149 -- Use universal line terminators when iterating `File` objects line-by-line.
Fixed #13252 -- Serialise with natural keys instead of primary keys.

Add ``--natural-foreign`` and ``--natural-primary`` options, and
deprecate the ``--natural`` option to the ``dumpdata`` management
command.

Add ``use_natural_foreign_keys`` and ``use_natural_primary_keys``
arguments, and deprecate the ``use_natural_keys`` argument to
``django.core.serializers.Serializer.serialize()``.
Fixed #13291 -- Add the ability to customise terminal colours.

Add a `palettes` argument to `django.core.management.color.color_style()`
and `django.utils.termcolors.parse_color_settings()`.
Fixed #16436 -- ``annotate().select_related().only()`` = ``ValueError: invalid literal for int() with base 10``

Correctly calculate the ``aggregate_start`` offset from loaded fields,
if any are deferred, instead of ``self.query.select`` which includes all
fields on the model.
Fixed #18004 -- Don't silently mangle badly encoded POST filename data.

Use `force_unicode(strict=True)` when decoding POST filenames, to
trigger a loud failure with a useful error.

Don't send people down the rabbit hole trying to debug "current
transaction is aborted" errors where it was the previous statement that
triggered the error, but the previous statement is not logged anywhere
because of the encoding error.