Fixed #20852 - Fixed incorrectly generated left quotes in docs.

Sphinx generates left single quotes for apostrophes after
code markup, when right single quotes are required. The
easiest way to fix this is just by inserting the unicode
character for a right single quote.

Instances of the problem were found by looking for
">‘" in the generated HTML.
This commit is contained in:
Dominic Rodger 2013-08-05 17:23:26 +01:00 committed by Tim Graham
parent 0b771fcf29
commit c33d1ca1d9
20 changed files with 30 additions and 30 deletions

View File

@ -193,7 +193,7 @@ Attributes
---------- ----------
All attributes can be set in your derived class and can be used in All attributes can be set in your derived class and can be used in
:class:`BaseCommand`'s :ref:`subclasses<ref-basecommand-subclasses>`. :class:`BaseCommand`s :ref:`subclasses<ref-basecommand-subclasses>`.
.. attribute:: BaseCommand.args .. attribute:: BaseCommand.args
@ -267,7 +267,7 @@ the :meth:`~BaseCommand.handle` method must be implemented.
.. admonition:: Implementing a constructor in a subclass .. admonition:: Implementing a constructor in a subclass
If you implement ``__init__`` in your subclass of :class:`BaseCommand`, If you implement ``__init__`` in your subclass of :class:`BaseCommand`,
you must call :class:`BaseCommand`'s ``__init__``. you must call :class:`BaseCommand`s ``__init__``.
.. code-block:: python .. code-block:: python

View File

@ -120,8 +120,8 @@ Filtering sensitive information
Error reports are really helpful for debugging errors, so it is generally Error reports are really helpful for debugging errors, so it is generally
useful to record as much relevant information about those errors as possible. useful to record as much relevant information about those errors as possible.
For example, by default Django records the `full traceback`_ for the For example, by default Django records the `full traceback`_ for the
exception raised, each `traceback frame`_'s local variables, and the exception raised, each `traceback frame`_s local variables, and the
:class:`~django.http.HttpRequest`'s :ref:`attributes<httprequest-attributes>`. :class:`~django.http.HttpRequest`s :ref:`attributes<httprequest-attributes>`.
However, sometimes certain types of information may be too sensitive and thus However, sometimes certain types of information may be too sensitive and thus
may not be appropriate to be kept track of, for example a user's password or may not be appropriate to be kept track of, for example a user's password or
@ -164,7 +164,7 @@ production environment (that is, where :setting:`DEBUG` is set to ``False``):
.. admonition:: When using mutiple decorators .. admonition:: When using mutiple decorators
If the variable you want to hide is also a function argument (e.g. If the variable you want to hide is also a function argument (e.g.
'``user``' in the following example), and if the decorated function has '``user`` in the following example), and if the decorated function has
mutiple decorators, then make sure to place ``@sensitive_variables`` at mutiple decorators, then make sure to place ``@sensitive_variables`` at
the top of the decorator chain. This way it will also hide the function the top of the decorator chain. This way it will also hide the function
argument as it gets passed through the other decorators:: argument as it gets passed through the other decorators::
@ -232,7 +232,7 @@ own filter class and tell Django to use it via the
DEFAULT_EXCEPTION_REPORTER_FILTER = 'path.to.your.CustomExceptionReporterFilter' DEFAULT_EXCEPTION_REPORTER_FILTER = 'path.to.your.CustomExceptionReporterFilter'
You may also control in a more granular way which filter to use within any You may also control in a more granular way which filter to use within any
given view by setting the ``HttpRequest``'s ``exception_reporter_filter`` given view by setting the ``HttpRequest``s ``exception_reporter_filter``
attribute:: attribute::
def my_view(request): def my_view(request):

View File

@ -132,7 +132,7 @@ We identify a bug
Fortunately, there's a little bug in the ``polls`` application for us to fix Fortunately, there's a little bug in the ``polls`` application for us to fix
right away: the ``Poll.was_published_recently()`` method returns ``True`` if right away: the ``Poll.was_published_recently()`` method returns ``True`` if
the ``Poll`` was published within the last day (which is correct) but also if the ``Poll`` was published within the last day (which is correct) but also if
the ``Poll``'s ``pub_date`` field is in the future (which certainly isn't). the ``Poll``s ``pub_date`` field is in the future (which certainly isn't).
You can see this in the Admin; create a poll whose date lies in the future; You can see this in the Admin; create a poll whose date lies in the future;
you'll see that the ``Poll`` change list claims it was published recently. you'll see that the ``Poll`` change list claims it was published recently.

View File

@ -225,7 +225,7 @@ DateMixin
.. attribute:: date_field .. attribute:: date_field
The name of the ``DateField`` or ``DateTimeField`` in the The name of the ``DateField`` or ``DateTimeField`` in the
``QuerySet``'s model that the date-based archive should use to ``QuerySet``s model that the date-based archive should use to
determine the list of objects to display on the page. determine the list of objects to display on the page.
When :doc:`time zone support </topics/i18n/timezones>` is enabled and When :doc:`time zone support </topics/i18n/timezones>` is enabled and

View File

@ -1615,7 +1615,7 @@ in your own admin JavaScript without including a second copy, you can use the
The embedded jQuery has been upgraded from 1.4.2 to 1.9.1. The embedded jQuery has been upgraded from 1.4.2 to 1.9.1.
The :class:`ModelAdmin` class requires jQuery by default, so there is no need The :class:`ModelAdmin` class requires jQuery by default, so there is no need
to add jQuery to your ``ModelAdmin``'s list of media resources unless you have to add jQuery to your ``ModelAdmin``s list of media resources unless you have
a specifc need. For example, if you require the jQuery library to be in the a specifc need. For example, if you require the jQuery library to be in the
global namespace (for example when using third-party jQuery plugins) or if you global namespace (for example when using third-party jQuery plugins) or if you
need a newer version of jQuery, you will have to include your own copy. need a newer version of jQuery, you will have to include your own copy.

View File

@ -243,7 +243,7 @@ Manager methods
be called. be called.
The ``extra_fields`` keyword arguments are passed through to the The ``extra_fields`` keyword arguments are passed through to the
:class:`~django.contrib.auth.models.User`'s ``__init__`` method to :class:`~django.contrib.auth.models.User`s ``__init__`` method to
allow setting arbitrary fields on a :ref:`custom User model allow setting arbitrary fields on a :ref:`custom User model
<auth-custom-user>`. <auth-custom-user>`.

View File

@ -54,7 +54,7 @@ following model, which would represent entries in a Weblog::
Now, suppose that we want the following steps to be applied whenever a Now, suppose that we want the following steps to be applied whenever a
new comment is posted on an ``Entry``: new comment is posted on an ``Entry``:
1. If the ``Entry``'s ``enable_comments`` field is ``False``, the 1. If the ``Entry``s ``enable_comments`` field is ``False``, the
comment will simply be disallowed (i.e., immediately deleted). comment will simply be disallowed (i.e., immediately deleted).
2. If the ``enable_comments`` field is ``True``, the comment will be 2. If the ``enable_comments`` field is ``True``, the comment will be

View File

@ -560,7 +560,7 @@ several lines in language files.
.. django-admin-option:: --no-location .. django-admin-option:: --no-location
Use the ``--no-location`` option to not write '``#: filename:line``' Use the ``--no-location`` option to not write '``#: filename:line``
comment lines in language files. Note that using this option makes it harder comment lines in language files. Note that using this option makes it harder
for technically skilled translators to understand each message's context. for technically skilled translators to understand each message's context.

View File

@ -90,7 +90,7 @@ Django quotes column and table names behind the scenes.
The name of an orderable field in the model, typically a :class:`DateField`, The name of an orderable field in the model, typically a :class:`DateField`,
:class:`DateTimeField`, or :class:`IntegerField`. This specifies the default :class:`DateTimeField`, or :class:`IntegerField`. This specifies the default
field to use in your model :class:`Manager`'s field to use in your model :class:`Manager`s
:meth:`~django.db.models.query.QuerySet.latest` and :meth:`~django.db.models.query.QuerySet.latest` and
:meth:`~django.db.models.query.QuerySet.earliest` methods. :meth:`~django.db.models.query.QuerySet.earliest` methods.

View File

@ -1924,7 +1924,7 @@ as_manager
.. versionadded:: 1.7 .. versionadded:: 1.7
Class method that returns an instance of :class:`~django.db.models.Manager` Class method that returns an instance of :class:`~django.db.models.Manager`
with a copy of the ``QuerySet``'s methods. See with a copy of the ``QuerySet``s methods. See
:ref:`create-manager-with-queryset-methods` for more details. :ref:`create-manager-with-queryset-methods` for more details.
.. _field-lookups: .. _field-lookups:

View File

@ -1744,7 +1744,7 @@ Default::
A tuple of template loader classes, specified as strings. Each ``Loader`` class A tuple of template loader classes, specified as strings. Each ``Loader`` class
knows how to import templates from a particular source. Optionally, a tuple can be knows how to import templates from a particular source. Optionally, a tuple can be
used instead of a string. The first item in the tuple should be the ``Loader``'s used instead of a string. The first item in the tuple should be the ``Loader``s
module, subsequent items are passed to the ``Loader`` during initialization. See module, subsequent items are passed to the ``Loader`` during initialization. See
:doc:`/ref/templates/api`. :doc:`/ref/templates/api`.
@ -2478,7 +2478,7 @@ files</howto/static-files/index>` for more details about usage.
your static files from their permanent locations into one directory for your static files from their permanent locations into one directory for
ease of deployment; it is **not** a place to store your static files ease of deployment; it is **not** a place to store your static files
permanently. You should do that in directories that will be found by permanently. You should do that in directories that will be found by
:doc:`staticfiles</ref/contrib/staticfiles>`'s :doc:`staticfiles</ref/contrib/staticfiles>`s
:setting:`finders<STATICFILES_FINDERS>`, which by default, are :setting:`finders<STATICFILES_FINDERS>`, which by default, are
``'static/'`` app sub-directories and any directories you include in ``'static/'`` app sub-directories and any directories you include in
:setting:`STATICFILES_DIRS`). :setting:`STATICFILES_DIRS`).

View File

@ -708,7 +708,7 @@ class. Here are the template loaders that come with Django:
with your own ``admin/base_site.html`` in ``myproject.polls``. You must with your own ``admin/base_site.html`` in ``myproject.polls``. You must
then make sure that your ``myproject.polls`` comes *before* then make sure that your ``myproject.polls`` comes *before*
``django.contrib.admin`` in :setting:`INSTALLED_APPS`, otherwise ``django.contrib.admin`` in :setting:`INSTALLED_APPS`, otherwise
``django.contrib.admin``'s will be loaded first and yours will be ignored. ``django.contrib.admin``s will be loaded first and yours will be ignored.
Note that the loader performs an optimization when it is first imported: Note that the loader performs an optimization when it is first imported:
it caches a list of which :setting:`INSTALLED_APPS` packages have a it caches a list of which :setting:`INSTALLED_APPS` packages have a

View File

@ -365,7 +365,7 @@ In earlier Django versions, when a model instance containing a
file from the backend storage. This opened the door to several data-loss file from the backend storage. This opened the door to several data-loss
scenarios, including rolled-back transactions and fields on different models scenarios, including rolled-back transactions and fields on different models
referencing the same file. In Django 1.3, when a model is deleted the referencing the same file. In Django 1.3, when a model is deleted the
:class:`~django.db.models.FileField`'s ``delete()`` method won't be called. If :class:`~django.db.models.FileField`s ``delete()`` method won't be called. If
you need cleanup of orphaned files, you'll need to handle it yourself (for you need cleanup of orphaned files, you'll need to handle it yourself (for
instance, with a custom management command that can be run manually or instance, with a custom management command that can be run manually or
scheduled to run periodically via e.g. cron). scheduled to run periodically via e.g. cron).
@ -654,7 +654,7 @@ Password reset view now accepts ``from_email``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The :func:`django.contrib.auth.views.password_reset` view now accepts a The :func:`django.contrib.auth.views.password_reset` view now accepts a
``from_email`` parameter, which is passed to the ``password_reset_form``'s ``from_email`` parameter, which is passed to the ``password_reset_form``s
``save()`` method as a keyword argument. If you are using this view with a ``save()`` method as a keyword argument. If you are using this view with a
custom password reset form, then you will need to ensure your form's ``save()`` custom password reset form, then you will need to ensure your form's ``save()``
method accepts this keyword argument. method accepts this keyword argument.

View File

@ -183,7 +183,7 @@ Minor features
* The :attr:`~django.views.generic.edit.DeletionMixin.success_url` of * The :attr:`~django.views.generic.edit.DeletionMixin.success_url` of
:class:`~django.views.generic.edit.DeletionMixin` is now interpolated with :class:`~django.views.generic.edit.DeletionMixin` is now interpolated with
its ``object``\'s ``__dict__``. its ``object``s ``__dict__``.
* :class:`~django.http.HttpResponseRedirect` and * :class:`~django.http.HttpResponseRedirect` and
:class:`~django.http.HttpResponsePermanentRedirect` now provide an ``url`` :class:`~django.http.HttpResponsePermanentRedirect` now provide an ``url``
@ -330,7 +330,7 @@ Minor features
* :class:`~django.forms.ModelForm` fields can now override error messages * :class:`~django.forms.ModelForm` fields can now override error messages
defined in model fields by using the defined in model fields by using the
:attr:`~django.forms.Field.error_messages` argument of a ``Field``'s :attr:`~django.forms.Field.error_messages` argument of a ``Field``s
constructor. To take advantage of this new feature with your custom fields, constructor. To take advantage of this new feature with your custom fields,
:ref:`see the updated recommendation <raising-validation-error>` for raising :ref:`see the updated recommendation <raising-validation-error>` for raising
a ``ValidationError``. a ``ValidationError``.

View File

@ -141,7 +141,7 @@ Miscellaneous
have a custom :class:`~django.core.files.uploadhandler.FileUploadHandler` have a custom :class:`~django.core.files.uploadhandler.FileUploadHandler`
that implements ``new_file()``, be sure it accepts this new parameter. that implements ``new_file()``, be sure it accepts this new parameter.
* :class:`ModelFormSet<django.forms.models.BaseModelFormSet>`'s no longer * :class:`ModelFormSet<django.forms.models.BaseModelFormSet>`s no longer
delete instances when ``save(commit=False)`` is called. See delete instances when ``save(commit=False)`` is called. See
:attr:`~django.forms.formsets.BaseFormSet.can_delete` for instructions on how :attr:`~django.forms.formsets.BaseFormSet.can_delete` for instructions on how
to manually delete objects from deleted forms. to manually delete objects from deleted forms.

View File

@ -288,7 +288,7 @@ object. In order to do this, we need to have two different querysets:
``Book`` queryset for use by :class:`~django.views.generic.list.ListView` ``Book`` queryset for use by :class:`~django.views.generic.list.ListView`
Since we have access to the ``Publisher`` whose books we want to list, we Since we have access to the ``Publisher`` whose books we want to list, we
simply override ``get_queryset()`` and use the ``Publisher``'s simply override ``get_queryset()`` and use the ``Publisher``s
:ref:`reverse foreign key manager<backwards-related-objects>`. :ref:`reverse foreign key manager<backwards-related-objects>`.
``Publisher`` queryset for use in :meth:`~django.views.generic.detail.SingleObjectMixin.get_object()` ``Publisher`` queryset for use in :meth:`~django.views.generic.detail.SingleObjectMixin.get_object()`

View File

@ -100,7 +100,7 @@ access ``self.model`` to get the model class to which they're attached.
Modifying initial Manager QuerySets Modifying initial Manager QuerySets
----------------------------------- -----------------------------------
A ``Manager``'s base ``QuerySet`` returns all objects in the system. For A ``Manager``s base ``QuerySet`` returns all objects in the system. For
example, using this model:: example, using this model::
from django.db import models from django.db import models
@ -111,7 +111,7 @@ example, using this model::
...the statement ``Book.objects.all()`` will return all books in the database. ...the statement ``Book.objects.all()`` will return all books in the database.
You can override a ``Manager``\'s base ``QuerySet`` by overriding the You can override a ``Manager``s base ``QuerySet`` by overriding the
``Manager.get_queryset()`` method. ``get_queryset()`` should return a ``Manager.get_queryset()`` method. ``get_queryset()`` should return a
``QuerySet`` with the properties you require. ``QuerySet`` with the properties you require.
@ -246,7 +246,7 @@ Creating ``Manager`` with ``QuerySet`` methods
In lieu of the above approach which requires duplicating methods on both the In lieu of the above approach which requires duplicating methods on both the
``QuerySet`` and the ``Manager``, :meth:`QuerySet.as_manager() ``QuerySet`` and the ``Manager``, :meth:`QuerySet.as_manager()
<django.db.models.query.QuerySet.as_manager>` can be used to create an instance <django.db.models.query.QuerySet.as_manager>` can be used to create an instance
of ``Manager`` with a copy of a custom ``QuerySet``'s methods:: of ``Manager`` with a copy of a custom ``QuerySet``s methods::
class Person(models.Model): class Person(models.Model):
... ...

View File

@ -720,7 +720,7 @@ efficient code.
In a newly created :class:`~django.db.models.query.QuerySet`, the cache is In a newly created :class:`~django.db.models.query.QuerySet`, the cache is
empty. The first time a :class:`~django.db.models.query.QuerySet` is evaluated empty. The first time a :class:`~django.db.models.query.QuerySet` is evaluated
-- and, hence, a database query happens -- Django saves the query results in -- and, hence, a database query happens -- Django saves the query results in
the :class:`~django.db.models.query.QuerySet`\'s cache and returns the results the :class:`~django.db.models.query.QuerySet`s cache and returns the results
that have been explicitly requested (e.g., the next element, if the that have been explicitly requested (e.g., the next element, if the
:class:`~django.db.models.query.QuerySet` is being iterated over). Subsequent :class:`~django.db.models.query.QuerySet` is being iterated over). Subsequent
evaluations of the :class:`~django.db.models.query.QuerySet` reuse the cached evaluations of the :class:`~django.db.models.query.QuerySet` reuse the cached

View File

@ -30,7 +30,7 @@ Declaring tablespaces for indexes
--------------------------------- ---------------------------------
You can pass the :attr:`~django.db.models.Field.db_tablespace` option to a You can pass the :attr:`~django.db.models.Field.db_tablespace` option to a
``Field`` constructor to specify an alternate tablespace for the ``Field``'s ``Field`` constructor to specify an alternate tablespace for the ``Field``s
column index. If no index would be created for the column, the option is column index. If no index would be created for the column, the option is
ignored. ignored.

View File

@ -392,7 +392,7 @@ these security concerns do not apply to you:
model = Author model = Author
fields = '__all__' fields = '__all__'
2. Set the ``exclude`` attribute of the ``ModelForm``'s inner ``Meta`` class to 2. Set the ``exclude`` attribute of the ``ModelForm``s inner ``Meta`` class to
a list of fields to be excluded from the form. a list of fields to be excluded from the form.
For example:: For example::
@ -757,7 +757,7 @@ Specifying widgets to use in the form with ``widgets``
.. versionadded:: 1.6 .. versionadded:: 1.6
Using the ``widgets`` parameter, you can specify a dictionary of values to Using the ``widgets`` parameter, you can specify a dictionary of values to
customize the ``ModelForm``'s widget class for a particular field. This customize the ``ModelForm``s widget class for a particular field. This
works the same way as the ``widgets`` dictionary on the inner ``Meta`` works the same way as the ``widgets`` dictionary on the inner ``Meta``
class of a ``ModelForm`` works:: class of a ``ModelForm`` works::