Removed support for AppCommand.handle_app() per deprecation timeline.

This commit is contained in:
Tim Graham 2015-01-17 12:32:20 -05:00
parent f0a1df0b01
commit 00a11994a5
2 changed files with 3 additions and 36 deletions

View File

@ -572,26 +572,9 @@ class AppCommand(BaseCommand):
Perform the command's actions for app_config, an AppConfig instance
corresponding to an application label given on the command line.
"""
try:
# During the deprecation path, keep delegating to handle_app if
# handle_app_config isn't implemented in a subclass.
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):

View File

@ -406,22 +406,6 @@ each application.
:class:`~django.apps.AppConfig` instance corresponding to an application
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
A management command which takes one or more arbitrary arguments