Import test case classes from their public API module.
Documentation - Noted that OneToOneField doesn't respect unique.

Added OneToOneField to the list of model fields for which the unique
argument isn't valid. (OneToOneFields are inherently unique, and if
the user supplies a value for unique it is ignored / overwritten.)
Fixed #20946 -- model inheritance + m2m failure

Cleaned up the internal implementation of m2m fields by removing
related.py _get_fk_val(). The _get_fk_val() was doing the wrong thing
if asked for the foreign key value on foreign key to parent model's
primary key when child model had different primary key field.
Fixed #12422 -- Don't override global email charset behavior for utf-8.

Thanks simonb for the report, Claude Paroz and Susan Tan for their work
on a fix.
Switched mail tests to SimpleTestCase.
Fixed a regression with get_or_create and virtual fields.

refs #20429

Thanks Simon Charette for the report and review.
Fixed docstring typo, thanks minddust.
Added myself to the committers list.
Fixed #20949 -- Typo #2 in docstring
Only create the migration directory once per app
Merge pull request #1502 from marfire/doc_modelvalid

Documentation -- Corrected error about Model.full_clean()
Fixed #20955 -- select_related regression

In cases where the same connection (from model A to model B along the
same field) was needed multiple times in a select_related query, the
join setup code mistakenly reused an existing join.
Moved translator comment just above the target string
Made description of LANGUAGE_CODE setting more clear.
Fixed #20956 -- Removed useless check in django.db.utils
Fixed #20944 -- Removed inaccurate statement about View.dispatch().
Documentation -- Clarified use of 'view' in test client introduction.
Revert "Fixed #20956 -- Removed useless check in django.db.utils"

This reverts commit ce0e86cf761dc182ae6fb8c0d68964955d19ec75.

The check is necessary if 'ENGINE' is an empty string.
Thanks apollo13 for pointing this out.
Fixed model.__eq__ and __hash__ for no pk value cases

The __eq__ method now considers two instances without primary key value
equal only when they have same id(). The __hash__ method raises
TypeError for no primary key case.

Fixed #18864, fixed #18250

Thanks to Tim Graham for docs review.
Fixed #20934 -- Avoided NoReverseMatch in ModelAdmin.changelist_view

The view tried to display links to a ModelAdmin's change_view, which
resulted in NoReverseMatches if get_urls was overridden to remove the
corresponding url.