Fixed #27842 -- Added protocol kwarg to GenericSitemap.__init__().

This commit is contained in:
Alexey Opalev 2017-02-15 14:36:18 +05:00 committed by Tim Graham
parent 81957086c1
commit 9f21e35100
4 changed files with 16 additions and 7 deletions

View File

@ -142,11 +142,12 @@ class GenericSitemap(Sitemap):
priority = None priority = None
changefreq = None changefreq = None
def __init__(self, info_dict, priority=None, changefreq=None): def __init__(self, info_dict, priority=None, changefreq=None, protocol=None):
self.queryset = info_dict['queryset'] self.queryset = info_dict['queryset']
self.date_field = info_dict.get('date_field') self.date_field = info_dict.get('date_field')
self.priority = priority self.priority = priority
self.changefreq = changefreq self.changefreq = changefreq
self.protocol = protocol
def items(self): def items(self):
# Make sure to return a clone; we don't want premature evaluation. # Make sure to return a clone; we don't want premature evaluation.

View File

@ -259,7 +259,7 @@ Shortcuts
The sitemap framework provides a convenience class for a common case: The sitemap framework provides a convenience class for a common case:
.. class:: GenericSitemap .. class:: GenericSitemap(info_dict, priority=None, changefreq=None, protocol=None)
The :class:`django.contrib.sitemaps.GenericSitemap` class allows you to The :class:`django.contrib.sitemaps.GenericSitemap` class allows you to
create a sitemap by passing it a dictionary which has to contain at least create a sitemap by passing it a dictionary which has to contain at least
@ -267,10 +267,15 @@ The sitemap framework provides a convenience class for a common case:
of the sitemap. It may also have a ``date_field`` entry that of the sitemap. It may also have a ``date_field`` entry that
specifies a date field for objects retrieved from the ``queryset``. specifies a date field for objects retrieved from the ``queryset``.
This will be used for the :attr:`~Sitemap.lastmod` attribute in the This will be used for the :attr:`~Sitemap.lastmod` attribute in the
generated sitemap. You may also pass :attr:`~Sitemap.priority` and generated sitemap.
:attr:`~Sitemap.changefreq` keyword arguments to the
:class:`~django.contrib.sitemaps.GenericSitemap` constructor to specify The :attr:`~Sitemap.priority`, :attr:`~Sitemap.changefreq`,
these attributes for all URLs. and :attr:`~Sitemap.protocol` keyword arguments allow specifying these
attributes for all URLs.
.. versionadded:: 2.0
The ``protocol`` keyword argument was added.
Example Example
------- -------

View File

@ -89,7 +89,8 @@ Minor features
:mod:`django.contrib.sitemaps` :mod:`django.contrib.sitemaps`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* ... * Added the ``protocol`` keyword argument to the
:class:`~django.contrib.sitemaps.GenericSitemap` constructor.
:mod:`django.contrib.sites` :mod:`django.contrib.sites`
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -20,11 +20,13 @@ class GenericViewsSitemapTests(SitemapTestsBase):
}, },
priority=0.6, priority=0.6,
changefreq='monthly', changefreq='monthly',
protocol='https',
) )
attr_values = ( attr_values = (
('date_field', datetime_value), ('date_field', datetime_value),
('priority', 0.6), ('priority', 0.6),
('changefreq', 'monthly'), ('changefreq', 'monthly'),
('protocol', 'https'),
) )
for attr_name, expected_value in attr_values: for attr_name, expected_value in attr_values:
with self.subTest(attr_name=attr_name): with self.subTest(attr_name=attr_name):