{{{
Traceback (most recent call last):
File "./manage.py", line 22, in <module>
main()
File "./manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "django/core/management/__init__.py", line 401, in
execute_from_command_line
utility.execute()
File "django/core/management/__init__.py", line 377, in execute
django.setup()
File "django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "django/apps/config.py", line 157, in create
if new_entry == app_config_name:
UnboundLocalError: local variable 'app_config_name' referenced before
assignment
}}}
Looks like a regression added in
https://code.djangoproject.com/ticket/31180.
--
Ticket URL: <https://code.djangoproject.com/ticket/31870>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* owner: nobody => Iuri de Silvio
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/31870#comment:1>
Old description:
> If I don't have an `apps.py` and the `default_app_config` is in
> `__init__.py`, it fails.
>
> {{{
> Traceback (most recent call last):
> File "./manage.py", line 22, in <module>
> main()
> File "./manage.py", line 18, in main
> execute_from_command_line(sys.argv)
> File "django/core/management/__init__.py", line 401, in
> execute_from_command_line
> utility.execute()
> File "django/core/management/__init__.py", line 377, in execute
> django.setup()
> File "django/__init__.py", line 24, in setup
> apps.populate(settings.INSTALLED_APPS)
> File "django/apps/registry.py", line 91, in populate
> app_config = AppConfig.create(entry)
> File "django/apps/config.py", line 157, in create
> if new_entry == app_config_name:
> UnboundLocalError: local variable 'app_config_name' referenced before
> assignment
> }}}
>
> Looks like a regression added in
> https://code.djangoproject.com/ticket/31180.
New description:
If I don't have an `apps.py` and the `default_app_config` is in
`__init__.py`, it fails.
{{{
Traceback (most recent call last):
File "./manage.py", line 22, in <module>
main()
File "./manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "django/core/management/__init__.py", line 401, in
execute_from_command_line
utility.execute()
File "django/core/management/__init__.py", line 377, in execute
django.setup()
File "django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "django/apps/config.py", line 157, in create
if new_entry == app_config_name:
UnboundLocalError: local variable 'app_config_name' referenced before
assignment
}}}
If the `apps.py` is there, but the `default_app_config` is in
`__init__.py`, it fails too.
{{{
Traceback (most recent call last):
File "django/django/test/utils.py", line 381, in inner
return func(*args, **kwargs)
File "django/tests/apps/tests.py", line 541, in
test_explicit_default_app_config_with_empty_apps
with
self.settings(INSTALLED_APPS=['apps.explicit_default_config_with_empty_apps']):
File "django/django/test/utils.py", line 336, in __enter__
return self.enable()
File "django/django/test/utils.py", line 410, in enable
apps.set_installed_apps(self.options['INSTALLED_APPS'])
File "django/django/apps/registry.py", line 355, in set_installed_apps
self.populate(installed)
File "django/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "django/django/apps/config.py", line 160, in create
if new_entry == app_config_name:
UnboundLocalError: local variable 'app_config_name' referenced before
assignment
}}}
Looks like a regression added in
https://code.djangoproject.com/ticket/31180.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/31870#comment:2>
* severity: Normal => Release blocker
* cc: Aymeric Augustin (added)
* needs_better_patch: 0 => 1
* component: Uncategorized => Core (Other)
* version: 3.1 => master
* has_patch: 0 => 1
* stage: Unreviewed => Accepted
Comment:
Thanks for the report.
Regression in 3f2821af6bc48fa8e7970c1ce27bc54c3172545e.
Reproduced at b2b0711b555fa292751763c2df4fe577c396f265.
--
Ticket URL: <https://code.djangoproject.com/ticket/31870#comment:3>
* needs_better_patch: 1 => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/31870#comment:4>
* stage: Accepted => Ready for checkin
--
Ticket URL: <https://code.djangoproject.com/ticket/31870#comment:5>
Comment (by Aymeric Augustin):
The PR is very good. Thanks.
--
Ticket URL: <https://code.djangoproject.com/ticket/31870#comment:6>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"ebd78a9f97d8ba850d279a844d89a1d805370738" ebd78a9f]:
{{{
#!CommitTicketReference repository=""
revision="ebd78a9f97d8ba850d279a844d89a1d805370738"
Fixed #31870 -- Fixed crash when populating app registry with empty or
without apps module.
Regression in 3f2821af6bc48fa8e7970c1ce27bc54c3172545e.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/31870#comment:7>