Removed support for AppCommand.handle_app() per deprecation timeline.
This commit is contained in:
parent
f0a1df0b01
commit
00a11994a5
|
@ -572,26 +572,9 @@ class AppCommand(BaseCommand):
|
||||||
Perform the command's actions for app_config, an AppConfig instance
|
Perform the command's actions for app_config, an AppConfig instance
|
||||||
corresponding to an application label given on the command line.
|
corresponding to an application label given on the command line.
|
||||||
"""
|
"""
|
||||||
try:
|
raise NotImplementedError(
|
||||||
# During the deprecation path, keep delegating to handle_app if
|
"Subclasses of AppCommand must provide"
|
||||||
# handle_app_config isn't implemented in a subclass.
|
"a handle_app_config() method.")
|
||||||
handle_app = self.handle_app
|
|
||||||
except AttributeError:
|
|
||||||
# Keep only this exception when the deprecation completes.
|
|
||||||
raise NotImplementedError(
|
|
||||||
"Subclasses of AppCommand must provide"
|
|
||||||
"a handle_app_config() method.")
|
|
||||||
else:
|
|
||||||
warnings.warn(
|
|
||||||
"AppCommand.handle_app() is superseded by "
|
|
||||||
"AppCommand.handle_app_config().",
|
|
||||||
RemovedInDjango19Warning, stacklevel=2)
|
|
||||||
if app_config.models_module is None:
|
|
||||||
raise CommandError(
|
|
||||||
"AppCommand cannot handle app '%s' in legacy mode "
|
|
||||||
"because it doesn't have a models module."
|
|
||||||
% app_config.label)
|
|
||||||
return handle_app(app_config.models_module, **options)
|
|
||||||
|
|
||||||
|
|
||||||
class LabelCommand(BaseCommand):
|
class LabelCommand(BaseCommand):
|
||||||
|
|
|
@ -406,22 +406,6 @@ each application.
|
||||||
:class:`~django.apps.AppConfig` instance corresponding to an application
|
:class:`~django.apps.AppConfig` instance corresponding to an application
|
||||||
label given on the command line.
|
label given on the command line.
|
||||||
|
|
||||||
.. versionchanged:: 1.7
|
|
||||||
|
|
||||||
Previously, :class:`AppCommand` subclasses had to implement
|
|
||||||
``handle_app(app, **options)`` where ``app`` was a models module. The new
|
|
||||||
API makes it possible to handle applications without a models module. The
|
|
||||||
fastest way to migrate is as follows::
|
|
||||||
|
|
||||||
def handle_app_config(app_config, **options):
|
|
||||||
if app_config.models_module is None:
|
|
||||||
return # Or raise an exception.
|
|
||||||
app = app_config.models_module
|
|
||||||
# Copy the implementation of handle_app(app_config, **options) here.
|
|
||||||
|
|
||||||
However, you may be able to simplify the implementation by using directly
|
|
||||||
the attributes of ``app_config``.
|
|
||||||
|
|
||||||
.. class:: LabelCommand
|
.. class:: LabelCommand
|
||||||
|
|
||||||
A management command which takes one or more arbitrary arguments
|
A management command which takes one or more arbitrary arguments
|
||||||
|
|
Loading…
Reference in New Issue