Fixed #24971 -- Made startapp generate an apps.py
This commit is contained in:
parent
c5eca74619
commit
e6dd7f995a
|
@ -0,0 +1 @@
|
||||||
|
default_app_config = '{{ app_name }}.apps.{{ camel_case_app_name }}Config'
|
|
@ -0,0 +1,5 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class {{ camel_case_app_name }}Config(AppConfig):
|
||||||
|
name = '{{ app_name }}'
|
|
@ -98,10 +98,13 @@ class TemplateCommand(BaseCommand):
|
||||||
base_name = '%s_name' % app_or_project
|
base_name = '%s_name' % app_or_project
|
||||||
base_subdir = '%s_template' % app_or_project
|
base_subdir = '%s_template' % app_or_project
|
||||||
base_directory = '%s_directory' % app_or_project
|
base_directory = '%s_directory' % app_or_project
|
||||||
|
camel_case_name = 'camel_case_%s_name' % app_or_project
|
||||||
|
camel_case_value = ''.join(x for x in name.title() if x != '_')
|
||||||
|
|
||||||
context = Context(dict(options, **{
|
context = Context(dict(options, **{
|
||||||
base_name: name,
|
base_name: name,
|
||||||
base_directory: top_dir,
|
base_directory: top_dir,
|
||||||
|
camel_case_name: camel_case_value,
|
||||||
'docs_version': get_docs_version(),
|
'docs_version': get_docs_version(),
|
||||||
'django_version': django.__version__,
|
'django_version': django.__version__,
|
||||||
'unicode_literals': '' if six.PY3 else 'from __future__ import unicode_literals\n\n',
|
'unicode_literals': '' if six.PY3 else 'from __future__ import unicode_literals\n\n',
|
||||||
|
|
|
@ -1094,8 +1094,13 @@ with the ``--name`` option. The :class:`template context
|
||||||
options)
|
options)
|
||||||
- ``app_name`` -- the app name as passed to the command
|
- ``app_name`` -- the app name as passed to the command
|
||||||
- ``app_directory`` -- the full path of the newly created app
|
- ``app_directory`` -- the full path of the newly created app
|
||||||
|
- ``camel_case_app_name`` -- the app name in camel case format
|
||||||
- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'``
|
- ``docs_version`` -- the version of the documentation: ``'dev'`` or ``'1.x'``
|
||||||
|
|
||||||
|
.. versionadded:: 1.9
|
||||||
|
|
||||||
|
``camel_case_app_name`` was added.
|
||||||
|
|
||||||
.. _render_warning:
|
.. _render_warning:
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
|
|
|
@ -275,6 +275,9 @@ Management Commands
|
||||||
* The :djadmin:`createcachetable` command now has a ``--dry-run`` flag to
|
* The :djadmin:`createcachetable` command now has a ``--dry-run`` flag to
|
||||||
print out the SQL rather than execute it.
|
print out the SQL rather than execute it.
|
||||||
|
|
||||||
|
* The :djadmin:`startapp` command creates an ``apps.py`` file and adds
|
||||||
|
``default_app_config`` in ``__init__.py``.
|
||||||
|
|
||||||
Models
|
Models
|
||||||
^^^^^^
|
^^^^^^
|
||||||
|
|
||||||
|
|
|
@ -592,6 +592,14 @@ class DjangoAdminSettingsDirectory(AdminScriptTestCase):
|
||||||
self.addCleanup(shutil.rmtree, app_path)
|
self.addCleanup(shutil.rmtree, app_path)
|
||||||
self.assertNoOutput(err)
|
self.assertNoOutput(err)
|
||||||
self.assertTrue(os.path.exists(app_path))
|
self.assertTrue(os.path.exists(app_path))
|
||||||
|
with open(os.path.join(app_path, 'apps.py'), 'r') as f:
|
||||||
|
content = f.read()
|
||||||
|
self.assertIn("class SettingsTestConfig(AppConfig)", content)
|
||||||
|
self.assertIn("name = 'settings_test'", content)
|
||||||
|
with open(os.path.join(app_path, '__init__.py'), 'r') as f:
|
||||||
|
content = f.read()
|
||||||
|
expected_content = "default_app_config = 'settings_test.apps.SettingsTestConfig'"
|
||||||
|
self.assertIn(expected_content, content)
|
||||||
if not PY3:
|
if not PY3:
|
||||||
with open(os.path.join(app_path, 'models.py'), 'r') as fp:
|
with open(os.path.join(app_path, 'models.py'), 'r') as fp:
|
||||||
content = fp.read()
|
content = fp.read()
|
||||||
|
|
Loading…
Reference in New Issue