Fixed #24857 -- Added "python -m django" entry point.

This commit is contained in:
Ryan Hiebert 2015-04-30 10:54:45 -05:00 committed by Tim Graham
parent 1743efbe62
commit 617eff41ac
4 changed files with 28 additions and 1 deletions

9
django/__main__.py Normal file
View File

@ -0,0 +1,9 @@
"""
Invokes django-admin when the django module is run as a script.
Example: python -m django check
"""
from django.core import management
if __name__ == "__main__":
management.execute_from_command_line()

View File

@ -33,7 +33,12 @@ Django settings files, use ``django-admin`` with
option.
The command-line examples throughout this document use ``django-admin`` to
be consistent, but any example can use ``manage.py`` just as well.
be consistent, but any example can use ``manage.py`` or ``python -m django``
just as well.
.. versionadded:: 1.9
``python -m django`` was added.
Usage
=====
@ -42,6 +47,7 @@ Usage
$ django-admin <command> [options]
$ manage.py <command> [options]
$ python -m django <command> [options]
``command`` should be one of the commands listed in this document.
``options``, which is optional, should be zero or more of the options available

View File

@ -415,6 +415,9 @@ Management Commands
to the database using the password from your settings file (instead of
requiring it to be manually entered).
* The ``django`` package may be run as a script, i.e. ``python -m django``,
which will behave the same as ``django-admin``.
Migrations
^^^^^^^^^^

View File

@ -2037,3 +2037,12 @@ class Dumpdata(AdminScriptTestCase):
out, err = self.run_manage(args)
self.assertOutput(err, "You can only use --pks option with one model")
self.assertNoOutput(out)
class MainModule(AdminScriptTestCase):
"""python -m django works like django-admin."""
def test_runs_django_admin(self):
cmd_out, _ = self.run_django_admin(['--version'])
mod_out, _ = self.run_test('-m', ['django', '--version'])
self.assertEqual(mod_out, cmd_out)