Browse Source

Fixed #19749 -- Documented ending param to command's self.stdout/err

Thanks xian at mintchaos.com for the report.
Claude Paroz 12 years ago
parent
commit
0201b9d6d8
2 changed files with 12 additions and 1 deletions
  1. 7 1
      docs/howto/custom-management-commands.txt
  2. 5 0
      docs/releases/1.5.txt

+ 7 - 1
docs/howto/custom-management-commands.txt

@@ -65,12 +65,18 @@ look like this:
 
                 self.stdout.write('Successfully closed poll "%s"' % poll_id)
 
+.. _management-commands-output:
+
 .. note::
     When you are using management commands and wish to provide console
     output, you should write to ``self.stdout`` and ``self.stderr``,
     instead of printing to ``stdout`` and ``stderr`` directly. By
     using these proxies, it becomes much easier to test your custom
-    command.
+    command. Note also that you don't need to end messages with a newline
+    character, it will be added automatically, unless you specify the ``ending``
+    parameter::
+
+        self.stdout.write("Unterminated line", ending='')
 
 The new custom command can be called using ``python manage.py closepoll
 <poll_id>``.

+ 5 - 0
docs/releases/1.5.txt

@@ -253,6 +253,11 @@ Django 1.5 also includes several smaller improvements worth noting:
   from :ref:`call_command <call-command>`. Any exception raised by the command
   (mostly :ref:`CommandError <ref-command-exceptions>`) is propagated.
 
+  Moreover, when you output errors or messages in your custom commands, you
+  should now use ``self.stdout.write('message')`` and
+  ``self.stderr.write('error')`` (see the note on
+  :ref:`management commands output <management-commands-output>`).
+
 * The dumpdata management command outputs one row at a time, preventing
   out-of-memory errors when dumping large datasets.