From 4ba1c2e785feecfa7a47aa5336a2b595f086a765 Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Mon, 15 Apr 2013 10:54:37 -0300 Subject: Fixed #9321 -- Deprecated hard-coding of help text in model ManyToManyField fields. This is backward incompatible for custom form field/widgets that rely on the hard-coded 'Hold down "Control", or "Command" on a Mac, to select more than one.' sentence. Application that use standard model form fields and widgets aren't affected but need to start handling these help texts by themselves before Django 1.8. For more details, see the related release notes and deprecation timeline sections added with this commit. --- docs/internals/deprecation.txt | 5 +++++ docs/releases/1.6.txt | 51 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) (limited to 'docs') diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt index 095b6d0a33..5fa7ea16ac 100644 --- a/docs/internals/deprecation.txt +++ b/docs/internals/deprecation.txt @@ -392,6 +392,11 @@ these changes. * The ``CACHE_MIDDLEWARE_ANONYMOUS_ONLY`` setting will be removed. +* Usage of the hard-coded *Hold down "Control", or "Command" on a Mac, to select + more than one.* string to override or append to user-provided ``help_text`` in + forms for ManyToMany model fields will not be performed by Django anymore + either at the model or forms layer. + 2.0 --- diff --git a/docs/releases/1.6.txt b/docs/releases/1.6.txt index 9950717420..a417e81f62 100644 --- a/docs/releases/1.6.txt +++ b/docs/releases/1.6.txt @@ -481,6 +481,44 @@ parameters. For example:: ``SQLite`` users need to check and update such queries. +.. _m2m-help_text: + +Help text of model form fields for ManyToManyField fields +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +HTML rendering of model form fields corresponding to +:class:`~django.db.models.ManyToManyField` ORM model fields used to get the +hard-coded sentence + + *Hold down "Control", or "Command" on a Mac, to select more than one.* + +(or its translation to the active locale) imposed as the help legend shown along +them if neither :attr:`model ` nor :attr:`form +` ``help_text`` attribute was specified by the +user (or appended to, if ``help_text`` was provided.) + +This happened always, possibly even with form fields implementing user +interactions that don't involve a keyboard and/or a mouse and was handled at the +model field layer. + +Starting with Django 1.6 this doesn't happen anymore. + +The change can affect you in a backward incompatible way if you employ custom +model form fields and/or widgets for ``ManyToManyField`` model fields whose UIs +do rely on the automatic provision of the mentioned hard-coded sentence. These +form field implementations need to adapt to the new scenario by providing their +own handling of the ``help_text`` attribute. + +Applications that use Django :doc:`model form ` +facilities together with Django built-in form :doc:`fields ` +and :doc:`widgets ` aren't affected but need to be aware of +what's described in :ref:`m2m-help_text-deprecation` below. + +This is because, as an temporary backward-compatible provision, the described +non-standard behavior has been preserved but moved to the model form field layer +and occurs only when the associated widget is +:class:`~django.forms.SelectMultiple` or a subclass. + Miscellaneous ~~~~~~~~~~~~~ @@ -707,3 +745,16 @@ you can set set the ``form_class`` attribute to a ``ModelForm`` that explicitly defines the fields to be used. Defining an ``UpdateView`` or ``CreateView`` subclass to be used with a model but without an explicit list of fields is deprecated. + +.. _m2m-help_text-deprecation: + +Munging of help text of model form fields for ManyToManyField fields +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All special handling of the ``help_text`` attibute of ManyToManyField model +fields performed by standard model or model form fields as described in +:ref:`m2m-help_text` above is deprecated and will be removed in Django 1.8. + +Help text of these fields will need to be handled either by applications, custom +form fields or widgets, just like happens with the rest of the model field +types. -- cgit v1.3