Fixed #21832

1st commit: Updates code, tests and docs.
2nd commit: Way to create fk instance at command line.
Yes, that's right -- `auth_app.User._meta.swapped` should always be True; we can omit the change to the condition.