Commit 00a11994 authored by Tim Graham's avatar Tim Graham
Browse files

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

parent f0a1df0b
Loading
Loading
Loading
Loading
+3 −20
Original line number Diff line number Diff line
@@ -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):
+0 −16
Original line number Diff line number Diff line
@@ -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