Browse Source

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

Tim Graham 10 years ago
parent
commit
00a11994a5
2 changed files with 3 additions and 36 deletions
  1. 3 20
      django/core/management/base.py
  2. 0 16
      docs/howto/custom-management-commands.txt

+ 3 - 20
django/core/management/base.py

@@ -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)
+        raise NotImplementedError(
+            "Subclasses of AppCommand must provide"
+            "a handle_app_config() method.")
 
 
 class LabelCommand(BaseCommand):

+ 0 - 16
docs/howto/custom-management-commands.txt

@@ -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