[Python-modules-commits] [python-django] 01/07: Import python-django_1.9.2.orig.tar.gz
Raphaël Hertzog
hertzog at moszumanska.debian.org
Tue Feb 2 08:40:57 UTC 2016
This is an automated email from the git hooks/post-receive script.
hertzog pushed a commit to branch debian/master
in repository python-django.
commit 6e04957b7d59fceb9d1ce51839f6d6fa7d9b67f4
Author: Raphaël Hertzog <hertzog at debian.org>
Date: Tue Feb 2 09:02:50 2016 +0100
Import python-django_1.9.2.orig.tar.gz
---
AUTHORS | 3 +
Django.egg-info/PKG-INFO | 2 +-
Django.egg-info/SOURCES.txt | 30 +-
PKG-INFO | 2 +-
django/__init__.py | 2 +-
.../app_template/{__init__.py => __init__.py-tpl} | 0
.../conf/app_template/{admin.py => admin.py-tpl} | 0
django/conf/app_template/{apps.py => apps.py-tpl} | 0
.../migrations/{__init__.py => __init__.py-tpl} | 0
.../conf/app_template/{models.py => models.py-tpl} | 0
.../conf/app_template/{tests.py => tests.py-tpl} | 0
.../conf/app_template/{views.py => views.py-tpl} | 0
.../project_template/{manage.py => manage.py-tpl} | 0
.../project_name/{__init__.py => __init__.py-tpl} | 0
.../project_name/{settings.py => settings.py-tpl} | 0
.../project_name/{urls.py => urls.py-tpl} | 0
.../project_name/{wsgi.py => wsgi.py-tpl} | 0
django/contrib/admin/options.py | 18 +-
django/contrib/admin/sites.py | 8 +-
.../static/admin/js/admin/DateTimeShortcuts.js | 4 +-
django/contrib/admin/static/admin/js/core.js | 5 +-
django/contrib/admin/utils.py | 2 +-
django/contrib/auth/hashers.py | 2 +-
django/contrib/gis/serializers/geojson.py | 3 +
django/contrib/gis/templates/gis/openlayers.html | 5 +-
django/core/management/templates.py | 12 +-
django/db/backends/base/operations.py | 2 +-
django/db/backends/mysql/creation.py | 2 +-
django/db/backends/postgresql/creation.py | 2 +-
django/db/backends/postgresql/schema.py | 4 +-
django/db/backends/sqlite3/operations.py | 13 +
django/db/migrations/questioner.py | 3 +
django/db/models/fields/related.py | 21 +-
django/db/models/sql/compiler.py | 2 +-
django/dispatch/dispatcher.py | 6 +-
django/forms/fields.py | 2 +
django/middleware/common.py | 5 +-
django/middleware/csrf.py | 2 +-
django/middleware/http.py | 4 +-
django/template/base.py | 8 +-
django/template/defaultfilters.py | 2 +-
django/template/smartif.py | 2 +-
django/utils/functional.py | 20 +
django/utils/http.py | 7 +
django/utils/translation/trans_real.py | 3 +
django/views/debug.py | 2 +-
docs/_ext/djangodocs.py | 41 +-
docs/conf.py | 2 +-
docs/contents.txt | 4 +-
docs/faq/admin.txt | 21 +-
docs/faq/contributing.txt | 9 +-
docs/faq/general.txt | 27 +-
docs/faq/help.txt | 11 +-
docs/faq/install.txt | 11 +-
docs/faq/models.txt | 13 +-
docs/faq/usage.txt | 11 +-
docs/glossary.txt | 2 -
docs/howto/custom-file-storage.txt | 1 +
docs/howto/custom-lookups.txt | 14 +-
docs/howto/custom-management-commands.txt | 42 +-
docs/howto/custom-model-fields.txt | 2 +-
docs/howto/custom-template-tags.txt | 42 +-
docs/howto/deployment/checklist.txt | 7 +-
docs/howto/deployment/index.txt | 1 +
docs/howto/deployment/wsgi/apache-auth.txt | 8 +-
docs/howto/deployment/wsgi/index.txt | 6 +-
docs/howto/deployment/wsgi/modwsgi.txt | 21 +-
docs/howto/error-reporting.txt | 13 +-
docs/howto/index.txt | 1 +
docs/howto/outputting-csv.txt | 2 +-
docs/howto/windows.txt | 12 +-
docs/howto/writing-migrations.txt | 6 +-
docs/index.txt | 6 +-
docs/internals/contributing/bugs-and-features.txt | 8 +-
docs/internals/contributing/committing-code.txt | 8 +-
docs/internals/contributing/localizing.txt | 8 +-
docs/internals/contributing/new-contributors.txt | 6 +-
docs/internals/contributing/triaging-tickets.txt | 44 +-
.../contributing/writing-code/coding-style.txt | 16 +-
.../contributing/writing-code/javascript.txt | 16 +-
.../writing-code/submitting-patches.txt | 30 +-
.../contributing/writing-code/unit-tests.txt | 26 +-
.../contributing/writing-code/working-with-git.txt | 19 +-
.../contributing/writing-documentation.txt | 53 +-
docs/internals/deprecation.txt | 3 +-
docs/internals/git.txt | 4 +-
docs/internals/index.txt | 1 +
docs/internals/mailing-lists.txt | 12 +-
docs/internals/security.txt | 2 -
docs/internals/team.txt | 7 +-
docs/intro/index.txt | 1 +
docs/intro/install.txt | 13 +-
docs/intro/reusable-apps.txt | 7 +-
docs/intro/tutorial03.txt | 2 +
docs/misc/index.txt | 1 +
docs/ref/applications.txt | 8 +-
docs/ref/checks.txt | 18 +-
docs/ref/class-based-views/base.txt | 12 +-
docs/ref/class-based-views/flattened-index.txt | 90 ++-
docs/ref/class-based-views/generic-date-based.txt | 28 +-
docs/ref/class-based-views/generic-display.txt | 8 +-
docs/ref/class-based-views/generic-editing.txt | 16 +-
docs/ref/class-based-views/index.txt | 4 +-
docs/ref/class-based-views/mixins-date-based.txt | 24 +-
docs/ref/class-based-views/mixins-editing.txt | 16 +-
.../class-based-views/mixins-multiple-object.txt | 8 +-
docs/ref/class-based-views/mixins-simple.txt | 8 +-
.../ref/class-based-views/mixins-single-object.txt | 8 +-
docs/ref/clickjacking.txt | 14 +-
docs/ref/contrib/admin/index.txt | 8 +-
docs/ref/contrib/auth.txt | 17 +-
docs/ref/contrib/contenttypes.txt | 3 +-
docs/ref/contrib/gis/commands.txt | 24 +-
docs/ref/contrib/gis/forms-api.txt | 24 +-
docs/ref/contrib/gis/functions.txt | 104 +--
docs/ref/contrib/gis/gdal.txt | 4 +-
docs/ref/contrib/gis/geoip.txt | 16 +-
docs/ref/contrib/gis/geoip2.txt | 12 +-
docs/ref/contrib/gis/geoquerysets.txt | 116 +--
docs/ref/contrib/gis/geos.txt | 4 +-
docs/ref/contrib/gis/install/geolibs.txt | 16 +-
docs/ref/contrib/gis/install/index.txt | 32 +-
docs/ref/contrib/gis/install/spatialite.txt | 52 +-
docs/ref/contrib/gis/model-api.txt | 4 +-
docs/ref/contrib/gis/serializers.txt | 6 +-
docs/ref/contrib/gis/testing.txt | 18 +-
docs/ref/contrib/gis/tutorial.txt | 4 +-
docs/ref/contrib/humanize.txt | 34 +-
docs/ref/contrib/index.txt | 52 +-
docs/ref/contrib/postgres/aggregates.txt | 76 +-
docs/ref/contrib/postgres/fields.txt | 147 ++--
docs/ref/contrib/postgres/forms.txt | 42 +-
docs/ref/contrib/postgres/functions.txt | 5 +-
docs/ref/contrib/postgres/index.txt | 1 +
docs/ref/contrib/postgres/lookups.txt | 4 +-
docs/ref/contrib/postgres/operations.txt | 13 +-
docs/ref/contrib/postgres/validators.txt | 10 +-
docs/ref/contrib/sitemaps.txt | 10 +-
docs/ref/contrib/staticfiles.txt | 65 +-
docs/ref/contrib/syndication.txt | 8 +-
docs/ref/csrf.txt | 10 +-
docs/ref/databases.txt | 2 +-
docs/ref/django-admin.txt | 887 ++++++++++-----------
docs/ref/files/file.txt | 15 +-
docs/ref/files/storage.txt | 11 +-
docs/ref/files/uploads.txt | 4 +-
docs/ref/forms/api.txt | 48 +-
docs/ref/forms/fields.txt | 96 +--
docs/ref/forms/formsets.txt | 5 +-
docs/ref/forms/models.txt | 13 +-
docs/ref/forms/validation.txt | 21 +-
docs/ref/forms/widgets.txt | 43 +-
docs/ref/middleware.txt | 4 +-
docs/ref/migration-operations.txt | 72 +-
docs/ref/models/conditional-expressions.txt | 8 +-
docs/ref/models/database-functions.txt | 36 +-
docs/ref/models/fields.txt | 8 +-
docs/ref/models/lookups.txt | 12 +-
docs/ref/models/meta.txt | 28 +-
docs/ref/models/querysets.txt | 317 ++++----
docs/ref/models/relations.txt | 2 +-
docs/ref/request-response.txt | 28 +-
docs/ref/schema-editor.txt | 44 +-
docs/ref/settings.txt | 771 +++++++++---------
docs/ref/signals.txt | 68 +-
docs/ref/template-response.txt | 18 +-
docs/ref/templates/api.txt | 40 +-
docs/ref/templates/builtins.txt | 394 ++++-----
docs/ref/templates/language.txt | 2 +-
docs/ref/unicode.txt | 2 +-
docs/ref/urlresolvers.txt | 16 +-
docs/ref/urls.txt | 52 +-
docs/ref/utils.txt | 24 +-
docs/releases/1.0-porting-guide.txt | 2 +-
docs/releases/1.1.3.txt | 2 +-
docs/releases/1.1.4.txt | 2 +-
docs/releases/1.2.4.txt | 2 +-
docs/releases/1.2.5.txt | 8 +-
docs/releases/1.2.txt | 14 +-
docs/releases/1.3.4.txt | 2 +-
docs/releases/1.3.5.txt | 4 +-
docs/releases/1.3.6.txt | 8 +-
docs/releases/1.3.txt | 84 +-
docs/releases/1.4.10.txt | 2 +-
docs/releases/1.4.2.txt | 2 +-
docs/releases/1.4.3.txt | 4 +-
docs/releases/1.4.4.txt | 8 +-
docs/releases/1.4.6.txt | 2 +-
docs/releases/1.4.7.txt | 2 +
docs/releases/1.4.8.txt | 4 +-
docs/releases/1.4.9.txt | 2 +-
docs/releases/1.4.txt | 159 ++--
docs/releases/1.5.2.txt | 4 +-
docs/releases/1.5.3.txt | 4 +-
docs/releases/1.5.4.txt | 4 +-
docs/releases/1.5.5.txt | 4 +-
docs/releases/1.5.txt | 100 +--
docs/releases/1.6.txt | 118 +--
docs/releases/1.7.txt | 220 ++---
docs/releases/1.8.1.txt | 2 +-
docs/releases/1.8.9.txt | 39 +
docs/releases/1.8.txt | 259 +++---
docs/releases/1.9.2.txt | 105 +++
docs/releases/1.9.txt | 146 ++--
docs/releases/index.txt | 2 +
docs/releases/security.txt | 218 +++--
docs/topics/auth/customizing.txt | 34 +-
docs/topics/auth/default.txt | 38 +-
docs/topics/auth/passwords.txt | 4 +-
docs/topics/cache.txt | 10 +-
docs/topics/checks.txt | 7 +-
docs/topics/class-based-views/generic-display.txt | 2 -
docs/topics/class-based-views/generic-editing.txt | 15 +-
docs/topics/class-based-views/intro.txt | 2 +-
docs/topics/class-based-views/mixins.txt | 20 +-
docs/topics/conditional-view-processing.txt | 2 +-
docs/topics/db/aggregation.txt | 12 +-
docs/topics/db/examples/many_to_many.txt | 7 +-
docs/topics/db/examples/many_to_one.txt | 4 +-
docs/topics/db/examples/one_to_one.txt | 7 +-
docs/topics/db/index.txt | 1 +
docs/topics/db/managers.txt | 24 +-
docs/topics/db/models.txt | 24 +-
docs/topics/db/multi-db.txt | 9 +-
docs/topics/db/optimization.txt | 16 +-
docs/topics/db/queries.txt | 41 +-
docs/topics/db/tablespaces.txt | 8 +-
docs/topics/email.txt | 28 +-
docs/topics/external-packages.txt | 6 +-
docs/topics/files.txt | 2 +-
docs/topics/forms/formsets.txt | 41 +-
docs/topics/forms/index.txt | 14 +-
docs/topics/forms/media.txt | 21 +-
docs/topics/forms/modelforms.txt | 20 +-
docs/topics/http/index.txt | 1 +
docs/topics/http/middleware.txt | 24 +-
docs/topics/http/sessions.txt | 9 +-
docs/topics/http/shortcuts.txt | 20 +-
docs/topics/http/urls.txt | 4 +-
docs/topics/http/views.txt | 4 +-
docs/topics/i18n/formatting.txt | 15 +-
docs/topics/i18n/timezones.txt | 26 +-
docs/topics/i18n/translation.txt | 37 +-
docs/topics/index.txt | 1 +
docs/topics/install.txt | 13 +-
docs/topics/migrations.txt | 90 +--
docs/topics/performance.txt | 24 +-
docs/topics/python3.txt | 12 +-
docs/topics/security.txt | 3 +-
docs/topics/serialization.txt | 32 +-
docs/topics/settings.txt | 16 +-
docs/topics/signing.txt | 8 +-
docs/topics/testing/advanced.txt | 12 +-
docs/topics/testing/overview.txt | 22 +-
docs/topics/testing/tools.txt | 67 +-
js_tests/admin/core.test.js | 46 +-
setup.cfg | 2 +-
.../project_template/{manage.py => manage.py-tpl} | 0
tests/admin_scripts/tests.py | 2 +-
tests/admin_views/admin.py | 18 +-
tests/admin_views/models.py | 20 +-
tests/admin_views/tests.py | 148 +++-
tests/apps/tests.py | 2 +-
tests/backends/tests.py | 12 +
.../test_order_with_respect_to.py | 17 +-
tests/csrf_tests/tests.py | 17 +
tests/expressions_case/tests.py | 13 +-
tests/file_uploads/tests.py | 2 +-
.../templates/forms_tests/article_form.html | 2 +-
tests/forms_tests/tests/test_forms.py | 8 +
tests/gis_tests/distapp/tests.py | 4 +-
tests/gis_tests/geoapp/test_functions.py | 2 +-
tests/gis_tests/geoapp/test_serializers.py | 17 +-
tests/gis_tests/geogapp/tests.py | 16 +-
tests/gis_tests/test_geoforms.py | 5 +-
tests/i18n/tests.py | 6 +-
tests/m2m_through/models.py | 1 +
tests/m2m_through/tests.py | 17 +-
tests/middleware/tests.py | 5 +
tests/migrations/test_questioner.py | 15 +
tests/migrations/test_writer.py | 2 +
tests/model_fields/tests.py | 54 ++
.../{tests.py => base_tests.py} | 60 +-
tests/order_with_respect_to/models.py | 9 -
tests/order_with_respect_to/tests.py | 85 +-
tests/project_template/test_settings.py | 15 +
tests/runtests.py | 10 +-
tests/schema/tests.py | 133 +--
tests/template_tests/tests.py | 9 +
tests/templates/form_view.html | 2 +-
tests/templates/login.html | 2 +-
tests/utils_tests/test_dateformat.py | 3 +
tests/utils_tests/test_http.py | 4 +-
tests/utils_tests/test_lazyobject.py | 85 +-
294 files changed, 4521 insertions(+), 3873 deletions(-)
diff --git a/AUTHORS b/AUTHORS
index 6e6e84c..29dfb2d 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -73,6 +73,7 @@ answer newbie questions, and generally made Django that much better:
Arvis Bickovskis <viestards.lists at gmail.com>
Aryeh Leib Taurog <http://www.aryehleib.com/>
A S Alam <aalam at users.sf.net>
+ Asif Saif Uddin <auvipy at gmail.com>
atlithorn <atlithorn at gmail.com>
Audrey Roy <http://audreymroy.com/>
av0000 at mail.ru
@@ -636,6 +637,7 @@ answer newbie questions, and generally made Django that much better:
schwank at gmail.com
Scot Hacker <shacker at birdhouse.org>
Scott Barr <scott at divisionbyzero.com.au>
+ Scott Pashley <github at scottpashley.co.uk>
scott at staplefish.com
Sean Brant
Sebastian Hillig <sebastian.hillig at gmail.com>
@@ -751,6 +753,7 @@ answer newbie questions, and generally made Django that much better:
Yasushi Masuda <whosaysni at gmail.com>
ye7cakf02 at sneakemail.com
ymasuda at ethercube.com
+ Yoong Kang Lim <yoongkang.lim at gmail.com>
Yusuke Miyazaki <miyazaki.dev at gmail.com>
Zachary Voase <zacharyvoase at gmail.com>
Zach Thompson <zthompson47 at gmail.com>
diff --git a/Django.egg-info/PKG-INFO b/Django.egg-info/PKG-INFO
index 5d5f57e..72647a0 100644
--- a/Django.egg-info/PKG-INFO
+++ b/Django.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: Django
-Version: 1.9.1
+Version: 1.9.2
Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Home-page: http://www.djangoproject.com/
Author: Django Software Foundation
diff --git a/Django.egg-info/SOURCES.txt b/Django.egg-info/SOURCES.txt
index 16f15b3..9fd152c 100644
--- a/Django.egg-info/SOURCES.txt
+++ b/Django.egg-info/SOURCES.txt
@@ -24,13 +24,13 @@ django/apps/registry.py
django/bin/django-admin.py
django/conf/__init__.py
django/conf/global_settings.py
-django/conf/app_template/__init__.py
-django/conf/app_template/admin.py
-django/conf/app_template/apps.py
-django/conf/app_template/models.py
-django/conf/app_template/tests.py
-django/conf/app_template/views.py
-django/conf/app_template/migrations/__init__.py
+django/conf/app_template/__init__.py-tpl
+django/conf/app_template/admin.py-tpl
+django/conf/app_template/apps.py-tpl
+django/conf/app_template/models.py-tpl
+django/conf/app_template/tests.py-tpl
+django/conf/app_template/views.py-tpl
+django/conf/app_template/migrations/__init__.py-tpl
django/conf/locale/__init__.py
django/conf/locale/af/LC_MESSAGES/django.mo
django/conf/locale/af/LC_MESSAGES/django.po
@@ -342,11 +342,11 @@ django/conf/locale/zh_Hant/__init__.py
django/conf/locale/zh_Hant/formats.py
django/conf/locale/zh_Hant/LC_MESSAGES/django.mo
django/conf/locale/zh_Hant/LC_MESSAGES/django.po
-django/conf/project_template/manage.py
-django/conf/project_template/project_name/__init__.py
-django/conf/project_template/project_name/settings.py
-django/conf/project_template/project_name/urls.py
-django/conf/project_template/project_name/wsgi.py
+django/conf/project_template/manage.py-tpl
+django/conf/project_template/project_name/__init__.py-tpl
+django/conf/project_template/project_name/settings.py-tpl
+django/conf/project_template/project_name/urls.py-tpl
+django/conf/project_template/project_name/wsgi.py-tpl
django/conf/urls/__init__.py
django/conf/urls/i18n.py
django/conf/urls/static.py
@@ -3494,8 +3494,10 @@ docs/releases/1.8.5.txt
docs/releases/1.8.6.txt
docs/releases/1.8.7.txt
docs/releases/1.8.8.txt
+docs/releases/1.8.9.txt
docs/releases/1.8.txt
docs/releases/1.9.1.txt
+docs/releases/1.9.2.txt
docs/releases/1.9.txt
docs/releases/index.txt
docs/releases/security.txt
@@ -3656,7 +3658,7 @@ tests/admin_scripts/complex_app/models/foo.py
tests/admin_scripts/custom_templates/project_template.tgz
tests/admin_scripts/custom_templates/app_template/__init__.py
tests/admin_scripts/custom_templates/app_template/api.py
-tests/admin_scripts/custom_templates/project_template/manage.py
+tests/admin_scripts/custom_templates/project_template/manage.py-tpl
tests/admin_scripts/custom_templates/project_template/ticket-18091-non-ascii-template.txt
tests/admin_scripts/custom_templates/project_template/ticket-19397-binary-file.ico
tests/admin_scripts/custom_templates/project_template/additional_dir/Procfile
@@ -4462,6 +4464,7 @@ tests/migrations/test_loader.py
tests/migrations/test_multidb.py
tests/migrations/test_operations.py
tests/migrations/test_optimizer.py
+tests/migrations/test_questioner.py
tests/migrations/test_state.py
tests/migrations/test_writer.py
tests/migrations/deprecated_field_migrations/0001_initial.py
@@ -4698,6 +4701,7 @@ tests/or_lookups/__init__.py
tests/or_lookups/models.py
tests/or_lookups/tests.py
tests/order_with_respect_to/__init__.py
+tests/order_with_respect_to/base_tests.py
tests/order_with_respect_to/models.py
tests/order_with_respect_to/tests.py
tests/ordering/__init__.py
diff --git a/PKG-INFO b/PKG-INFO
index 5d5f57e..72647a0 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: Django
-Version: 1.9.1
+Version: 1.9.2
Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Home-page: http://www.djangoproject.com/
Author: Django Software Foundation
diff --git a/django/__init__.py b/django/__init__.py
index fb99424..3dbe18f 100644
--- a/django/__init__.py
+++ b/django/__init__.py
@@ -1,6 +1,6 @@
from django.utils.version import get_version
-VERSION = (1, 9, 1, 'final', 0)
+VERSION = (1, 9, 2, 'final', 0)
__version__ = get_version(VERSION)
diff --git a/django/conf/app_template/__init__.py b/django/conf/app_template/__init__.py-tpl
similarity index 100%
rename from django/conf/app_template/__init__.py
rename to django/conf/app_template/__init__.py-tpl
diff --git a/django/conf/app_template/admin.py b/django/conf/app_template/admin.py-tpl
similarity index 100%
rename from django/conf/app_template/admin.py
rename to django/conf/app_template/admin.py-tpl
diff --git a/django/conf/app_template/apps.py b/django/conf/app_template/apps.py-tpl
similarity index 100%
rename from django/conf/app_template/apps.py
rename to django/conf/app_template/apps.py-tpl
diff --git a/django/conf/app_template/migrations/__init__.py b/django/conf/app_template/migrations/__init__.py-tpl
similarity index 100%
rename from django/conf/app_template/migrations/__init__.py
rename to django/conf/app_template/migrations/__init__.py-tpl
diff --git a/django/conf/app_template/models.py b/django/conf/app_template/models.py-tpl
similarity index 100%
rename from django/conf/app_template/models.py
rename to django/conf/app_template/models.py-tpl
diff --git a/django/conf/app_template/tests.py b/django/conf/app_template/tests.py-tpl
similarity index 100%
rename from django/conf/app_template/tests.py
rename to django/conf/app_template/tests.py-tpl
diff --git a/django/conf/app_template/views.py b/django/conf/app_template/views.py-tpl
similarity index 100%
rename from django/conf/app_template/views.py
rename to django/conf/app_template/views.py-tpl
diff --git a/django/conf/project_template/manage.py b/django/conf/project_template/manage.py-tpl
similarity index 100%
rename from django/conf/project_template/manage.py
rename to django/conf/project_template/manage.py-tpl
diff --git a/django/conf/project_template/project_name/__init__.py b/django/conf/project_template/project_name/__init__.py-tpl
similarity index 100%
rename from django/conf/project_template/project_name/__init__.py
rename to django/conf/project_template/project_name/__init__.py-tpl
diff --git a/django/conf/project_template/project_name/settings.py b/django/conf/project_template/project_name/settings.py-tpl
similarity index 100%
rename from django/conf/project_template/project_name/settings.py
rename to django/conf/project_template/project_name/settings.py-tpl
diff --git a/django/conf/project_template/project_name/urls.py b/django/conf/project_template/project_name/urls.py-tpl
similarity index 100%
rename from django/conf/project_template/project_name/urls.py
rename to django/conf/project_template/project_name/urls.py-tpl
diff --git a/django/conf/project_template/project_name/wsgi.py b/django/conf/project_template/project_name/wsgi.py-tpl
similarity index 100%
rename from django/conf/project_template/project_name/wsgi.py
rename to django/conf/project_template/project_name/wsgi.py-tpl
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index 2557de9..5264005 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -38,7 +38,7 @@ from django.template.response import SimpleTemplateResponse, TemplateResponse
from django.utils import six
from django.utils.decorators import method_decorator
from django.utils.encoding import force_text, python_2_unicode_compatible
-from django.utils.html import escape, escapejs
+from django.utils.html import escape
from django.utils.http import urlencode
from django.utils.safestring import mark_safe
from django.utils.text import capfirst, get_text_list
@@ -1113,9 +1113,9 @@ class ModelAdmin(BaseModelAdmin):
new_value = obj.serializable_value(attr)
return SimpleTemplateResponse('admin/popup_response.html', {
'action': 'change',
- 'value': escape(value),
- 'obj': escapejs(obj),
- 'new_value': escape(new_value),
+ 'value': value,
+ 'obj': obj,
+ 'new_value': new_value,
})
opts = self.model._meta
@@ -1343,6 +1343,10 @@ class ModelAdmin(BaseModelAdmin):
model = self.model
opts = model._meta
+
+ if request.method == 'POST' and '_saveasnew' in request.POST:
+ object_id = None
+
add = object_id is None
if add:
@@ -1360,10 +1364,6 @@ class ModelAdmin(BaseModelAdmin):
raise Http404(_('%(name)s object with primary key %(key)r does not exist.') % {
'name': force_text(opts.verbose_name), 'key': escape(object_id)})
- if request.method == 'POST' and "_saveasnew" in request.POST:
- object_id = None
- obj = None
-
ModelForm = self.get_form(request, obj)
if request.method == 'POST':
form = ModelForm(request.POST, request.FILES, instance=obj)
@@ -1426,6 +1426,8 @@ class ModelAdmin(BaseModelAdmin):
if request.method == 'POST' and not form_validated and "_saveasnew" in request.POST:
context['show_save'] = False
context['show_save_and_continue'] = False
+ # Use the change template instead of the add template.
+ add = False
context.update(extra_context or {})
diff --git a/django/contrib/admin/sites.py b/django/contrib/admin/sites.py
index 39f22b8..0e43b18 100644
--- a/django/contrib/admin/sites.py
+++ b/django/contrib/admin/sites.py
@@ -367,7 +367,13 @@ class AdminSite(object):
"""
from django.contrib.auth.views import logout
defaults = {
- 'extra_context': dict(self.each_context(request), **(extra_context or {})),
+ 'extra_context': dict(
+ self.each_context(request),
+ # Since the user isn't logged out at this point, the value of
+ # has_permission must be overridden.
+ has_permission=False,
+ **(extra_context or {})
+ ),
}
if self.logout_template is not None:
defaults['template_name'] = self.logout_template
diff --git a/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js b/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
index bc7e187..1943935 100644
--- a/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
+++ b/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
@@ -297,8 +297,8 @@
if (inp.value) {
var format = get_format('DATE_INPUT_FORMATS')[0];
var selected = inp.value.strptime(format);
- var year = selected.getFullYear();
- var month = selected.getMonth() + 1;
+ var year = selected.getUTCFullYear();
+ var month = selected.getUTCMonth() + 1;
var re = /\d{4}/;
if (re.test(year.toString()) && month >= 1 && month <= 12) {
DateTimeShortcuts.calendars[num].drawDate(month, year, selected);
diff --git a/django/contrib/admin/static/admin/js/core.js b/django/contrib/admin/static/admin/js/core.js
index 34f9926..1840948 100644
--- a/django/contrib/admin/static/admin/js/core.js
+++ b/django/contrib/admin/static/admin/js/core.js
@@ -240,7 +240,10 @@ function findPosY(obj) {
}
++i;
}
- return new Date(year, month, day);
+ // Create Date object from UTC since the parsed value is supposed to be
+ // in UTC, not local time. Also, the calendar uses UTC functions for
+ // date extraction.
+ return new Date(Date.UTC(year, month, day));
};
})();
diff --git a/django/contrib/admin/utils.py b/django/contrib/admin/utils.py
index e85e2de..254dd96 100644
--- a/django/contrib/admin/utils.py
+++ b/django/contrib/admin/utils.py
@@ -383,7 +383,7 @@ def help_text_for_field(name, model):
def display_for_field(value, field, empty_value_display):
from django.contrib.admin.templatetags.admin_list import _boolean_icon
- if field.flatchoices:
+ if getattr(field, 'flatchoices', None):
return dict(field.flatchoices).get(value, empty_value_display)
# NullBooleanField needs special-case null-handling, so it comes
# before the general null test.
diff --git a/django/contrib/auth/hashers.py b/django/contrib/auth/hashers.py
index 0188f4a..93d4598 100644
--- a/django/contrib/auth/hashers.py
+++ b/django/contrib/auth/hashers.py
@@ -353,7 +353,7 @@ class BCryptPasswordHasher(BCryptSHA256PasswordHasher):
This hasher does not first hash the password which means it is subject to
the 72 character bcrypt password truncation, most use cases should prefer
- the BCryptSha512PasswordHasher.
+ the BCryptSHA256PasswordHasher.
See: https://code.djangoproject.com/ticket/20138
"""
diff --git a/django/contrib/gis/serializers/geojson.py b/django/contrib/gis/serializers/geojson.py
index f26147a..b26ec2e 100644
--- a/django/contrib/gis/serializers/geojson.py
+++ b/django/contrib/gis/serializers/geojson.py
@@ -18,6 +18,9 @@ class Serializer(JSONSerializer):
super(Serializer, self)._init_options()
self.geometry_field = self.json_kwargs.pop('geometry_field', None)
self.srid = self.json_kwargs.pop('srid', 4326)
+ if (self.selected_fields is not None and self.geometry_field is not None
+ and self.geometry_field not in self.selected_fields):
+ self.selected_fields = list(self.selected_fields) + [self.geometry_field]
def start_serialization(self):
self._init_options()
diff --git a/django/contrib/gis/templates/gis/openlayers.html b/django/contrib/gis/templates/gis/openlayers.html
index 02fa988..81f33ae 100644
--- a/django/contrib/gis/templates/gis/openlayers.html
+++ b/django/contrib/gis/templates/gis/openlayers.html
@@ -1,4 +1,5 @@
-<style type="text/css">{% block map_css %}{% load i18n static %}{% get_current_language_bidi as LANGUAGE_BIDI %}
+{% load i18n l10n static %}
+<style type="text/css">{% block map_css %}{% get_current_language_bidi as LANGUAGE_BIDI %}
#{{ id }}_map { width: {{ map_width }}px; height: {{ map_height }}px; }
#{{ id }}_map .aligned label { float: inherit; }
#{{ id }}_div_map { position: relative; vertical-align: top; float: {{ LANGUAGE_BIDI|yesno:"right,left" }}; }
@@ -25,7 +26,7 @@
id: '{{ id }}',
map_id: '{{ id }}_map',
map_options: map_options,
- map_srid: {{ map_srid }},
+ map_srid: {{ map_srid|unlocalize }},
name: '{{ name }}'
};
{% endblock %}
diff --git a/django/core/management/templates.py b/django/core/management/templates.py
index 3addb06..9cb4d95 100644
--- a/django/core/management/templates.py
+++ b/django/core/management/templates.py
@@ -42,6 +42,11 @@ class TemplateCommand(BaseCommand):
# Can't perform any active locale changes during this command, because
# setting might not be available at all.
leave_locale_alone = True
+ # Rewrite the following suffixes when determining the target filename.
+ rewrite_template_suffixes = (
+ # Allow shipping invalid .py files without byte-compilation.
+ ('.py-tpl', '.py'),
+ )
def add_arguments(self, parser):
parser.add_argument('name', help='Name of the application or project.')
@@ -139,6 +144,11 @@ class TemplateCommand(BaseCommand):
old_path = path.join(root, filename)
new_path = path.join(top_dir, relative_dir,
filename.replace(base_name, name))
+ for old_suffix, new_suffix in self.rewrite_template_suffixes:
+ if new_path.endswith(old_suffix):
+ new_path = new_path[:-len(old_suffix)] + new_suffix
+ break # Only rewrite once
+
if path.exists(new_path):
raise CommandError("%s already exists, overlaying a "
"project or app into an existing "
@@ -149,7 +159,7 @@ class TemplateCommand(BaseCommand):
# accidentally render Django templates files
with open(old_path, 'rb') as template_file:
content = template_file.read()
- if filename.endswith(extensions) or filename in extra_files:
+ if new_path.endswith(extensions) or filename in extra_files:
content = content.decode('utf-8')
template = Engine().from_string(content)
content = template.render(context)
diff --git a/django/db/backends/base/operations.py b/django/db/backends/base/operations.py
index 7957265..6e5aff1 100644
--- a/django/db/backends/base/operations.py
+++ b/django/db/backends/base/operations.py
@@ -227,7 +227,7 @@ class BaseDatabaseOperations(object):
def lookup_cast(self, lookup_type, internal_type=None):
"""
Returns the string to use in a query when performing lookups
- ("contains", "like", etc). The resulting string should contain a '%s'
+ ("contains", "like", etc.). The resulting string should contain a '%s'
placeholder for the column being searched against.
"""
return "%s"
diff --git a/django/db/backends/mysql/creation.py b/django/db/backends/mysql/creation.py
index 43857f0..ae43709 100644
--- a/django/db/backends/mysql/creation.py
+++ b/django/db/backends/mysql/creation.py
@@ -31,7 +31,7 @@ class DatabaseCreation(BaseDatabaseCreation):
try:
if verbosity >= 1:
print("Destroying old test database for alias %s..." % (
- self._get_database_display_str(target_database_name, verbosity),
+ self._get_database_display_str(verbosity, target_database_name),
))
cursor.execute("DROP DATABASE %s" % qn(target_database_name))
cursor.execute("CREATE DATABASE %s" % qn(target_database_name))
diff --git a/django/db/backends/postgresql/creation.py b/django/db/backends/postgresql/creation.py
index 2a886ba..3efcfc7 100644
--- a/django/db/backends/postgresql/creation.py
+++ b/django/db/backends/postgresql/creation.py
@@ -33,7 +33,7 @@ class DatabaseCreation(BaseDatabaseCreation):
try:
if verbosity >= 1:
print("Destroying old test database for alias %s..." % (
- self._get_database_display_str(target_database_name, verbosity),
+ self._get_database_display_str(verbosity, target_database_name),
))
cursor.execute("DROP DATABASE %s" % qn(target_database_name))
cursor.execute("CREATE DATABASE %s WITH TEMPLATE %s" % (
diff --git a/django/db/backends/postgresql/schema.py b/django/db/backends/postgresql/schema.py
index cc31aad..8d4dc87 100644
--- a/django/db/backends/postgresql/schema.py
+++ b/django/db/backends/postgresql/schema.py
@@ -110,13 +110,13 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor):
new_db_params, strict,
)
# Added an index? Create any PostgreSQL-specific indexes.
- if ((not old_field.db_index and new_field.db_index) or (not old_field.unique and new_field.unique)):
+ if not old_field.db_index and not old_field.unique and (new_field.db_index or new_field.unique):
like_index_statement = self._create_like_index_sql(model, new_field)
if like_index_statement is not None:
self.execute(like_index_statement)
# Removed an index? Drop any PostgreSQL-specific indexes.
- if ((not new_field.db_index and old_field.db_index) or (not new_field.unique and old_field.unique)):
+ if (old_field.db_index or old_field.unique) and not (new_field.db_index or new_field.unique):
index_to_remove = self._create_index_name(model, [old_field.column], suffix='_like')
index_names = self._constraint_names(model, [old_field.column], index=True)
for index_name in index_names:
diff --git a/django/db/backends/sqlite3/operations.py b/django/db/backends/sqlite3/operations.py
index 91d1a27..2af0846 100644
--- a/django/db/backends/sqlite3/operations.py
+++ b/django/db/backends/sqlite3/operations.py
@@ -107,6 +107,19 @@ class DatabaseOperations(BaseDatabaseOperations):
"""
Only for last_executed_query! Don't use this to execute SQL queries!
"""
+ # This function is limited both by SQLITE_LIMIT_VARIABLE_NUMBER (the
+ # number of parameters, default = 999) and SQLITE_MAX_COLUMN (the
+ # number of return values, default = 2000). Since Python's sqlite3
+ # module doesn't expose the get_limit() C API, assume the default
+ # limits are in effect and split the work in batches if needed.
+ BATCH_SIZE = 999
+ if len(params) > BATCH_SIZE:
+ results = ()
+ for index in range(0, len(params), BATCH_SIZE):
+ chunk = params[index:index + BATCH_SIZE]
+ results += self._quote_params_for_last_executed_query(chunk)
+ return results
+
sql = 'SELECT ' + ', '.join(['QUOTE(?)'] * len(params))
# Bypass Django's wrappers and use the underlying sqlite3 connection
# to avoid logging this query - it would trigger infinite recursion.
diff --git a/django/db/migrations/questioner.py b/django/db/migrations/questioner.py
index aef80f4..47d4cdf 100644
--- a/django/db/migrations/questioner.py
+++ b/django/db/migrations/questioner.py
@@ -38,6 +38,9 @@ class MigrationQuestioner(object):
except LookupError: # It's a fake app.
return self.defaults.get("ask_initial", False)
migrations_import_path = MigrationLoader.migrations_module(app_config.label)
+ if migrations_import_path is None:
+ # It's an application with migrations disabled.
+ return self.defaults.get("ask_initial", False)
try:
migrations_module = importlib.import_module(migrations_import_path)
except ImportError:
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 80b8e63..ff820ae 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -39,7 +39,7 @@ from .reverse_related import (
RECURSIVE_RELATIONSHIP_CONSTANT = 'self'
-def resolve_relation(scope_model, relation):
+def resolve_relation(scope_model, relation, resolve_recursive_relationship=True):
"""
Transform relation into a model or fully-qualified model string of the form
"app_label.ModelName", relative to scope_model.
@@ -54,12 +54,11 @@ def resolve_relation(scope_model, relation):
"""
# Check for recursive relations
if relation == RECURSIVE_RELATIONSHIP_CONSTANT:
- relation = scope_model
-
+ if resolve_recursive_relationship:
+ relation = scope_model
# Look for an "app.Model" relation
- if isinstance(relation, six.string_types):
- if "." not in relation:
- relation = "%s.%s" % (scope_model._meta.app_label, relation)
+ elif isinstance(relation, six.string_types) and '.' not in relation:
+ relation = "%s.%s" % (scope_model._meta.app_label, relation)
return relation
@@ -306,6 +305,11 @@ class RelatedField(Field):
field.remote_field.model = related
field.do_related_class(related, model)
lazy_related_operation(resolve_related_class, cls, self.remote_field.model, field=self)
+ else:
+ # Bind a lazy reference to the app in which the model is defined.
+ self.remote_field.model = resolve_relation(
+ cls, self.remote_field.model, resolve_recursive_relationship=False
+ )
def get_forward_related_filter(self, obj):
"""
@@ -1577,6 +1581,11 @@ class ManyToManyField(RelatedField):
lazy_related_operation(resolve_through_model, cls, self.remote_field.through, field=self)
elif not cls._meta.swapped:
self.remote_field.through = create_many_to_many_intermediary_model(self, cls)
+ else:
+ # Bind a lazy reference to the app in which the model is defined.
+ self.remote_field.through = resolve_relation(
+ cls, self.remote_field.through, resolve_recursive_relationship=False
+ )
# Add the descriptor for the m2m relation.
setattr(cls, self.name, ManyToManyDescriptor(self.remote_field, reverse=False))
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py
index 48b0046..22e4e88 100644
--- a/django/db/models/sql/compiler.py
+++ b/django/db/models/sql/compiler.py
@@ -568,7 +568,7 @@ class SQLCompiler(object):
# If we get to this point and the field is a relation to another model,
# append the default ordering for that model unless the attribute name
# of the field is specified.
- if field.is_relation and path and opts.ordering and name != field.attname:
+ if field.is_relation and opts.ordering and getattr(field, 'attname', None) != name:
# Firstly, avoid infinite loops.
if not already_seen:
already_seen = set()
diff --git a/django/dispatch/dispatcher.py b/django/dispatch/dispatcher.py
index 79fdb0b..2878ffa 100644
--- a/django/dispatch/dispatcher.py
+++ b/django/dispatch/dispatcher.py
@@ -171,13 +171,13 @@ class Signal(object):
Send signal from sender to all connected receivers.
If any receiver raises an error, the error propagates back through send,
- terminating the dispatch loop, so it is quite possible to not have all
- receivers called if a raises an error.
+ terminating the dispatch loop. So it's possible that all receivers
+ won't be called if an error is raised.
Arguments:
sender
- The sender of the signal Either a specific object or None.
+ The sender of the signal. Either a specific object or None.
named
Named arguments which will be passed to receivers.
diff --git a/django/forms/fields.py b/django/forms/fields.py
index d2ae133..e59cf81 100644
--- a/django/forms/fields.py
+++ b/django/forms/fields.py
@@ -177,6 +177,8 @@ class Field(six.with_metaclass(RenameFieldMethods, object)):
For most fields, this will simply be data; FileFields need to handle it
a bit differently.
"""
+ if self.disabled:
+ return initial
return data
def widget_attrs(self, widget):
diff --git a/django/middleware/common.py b/django/middleware/common.py
index 3db925c..a8958a8 100644
--- a/django/middleware/common.py
+++ b/django/middleware/common.py
@@ -8,6 +8,7 @@ from django.core.exceptions import PermissionDenied
from django.core.mail import mail_managers
from django.utils.cache import get_conditional_response, set_response_etag
from django.utils.encoding import force_text
+from django.utils.http import unquote_etag
from django.utils.six.moves.urllib.parse import urlparse
logger = logging.getLogger('django.request')
@@ -120,9 +121,7 @@ class CommonMiddleware(object):
if response.has_header('ETag'):
return get_conditional_response(
request,
- # get_conditional_response() requires an unquoted version
- # of the response's ETag.
- etag=response['ETag'].strip('"'),
+ etag=unquote_etag(response['ETag']),
response=response,
)
diff --git a/django/middleware/csrf.py b/django/middleware/csrf.py
index 797b6f3..25fb733 100644
--- a/django/middleware/csrf.py
+++ b/django/middleware/csrf.py
@@ -174,7 +174,7 @@ class CsrfViewMiddleware(object):
good_referer = request.get_host()
else:
good_referer = settings.CSRF_COOKIE_DOMAIN
- server_port = request.META['SERVER_PORT']
+ server_port = request.get_port()
if server_port not in ('443', '80'):
good_referer = '%s:%s' % (good_referer, server_port)
diff --git a/django/middleware/http.py b/django/middleware/http.py
index 7a6f237..7912200 100644
--- a/django/middleware/http.py
+++ b/django/middleware/http.py
@@ -1,5 +1,5 @@
from django.utils.cache import get_conditional_response
-from django.utils.http import http_date, parse_http_date_safe
+from django.utils.http import http_date, parse_http_date_safe, unquote_etag
class ConditionalGetMiddleware(object):
@@ -23,7 +23,7 @@ class ConditionalGetMiddleware(object):
if etag or last_modified:
return get_conditional_response(
request,
- etag=etag,
+ etag=unquote_etag(etag),
last_modified=last_modified,
response=response,
)
diff --git a/django/template/base.py b/django/template/base.py
index 0df744f..30d339a 100644
--- a/django/template/base.py
+++ b/django/template/base.py
@@ -224,6 +224,7 @@ class Template(object):
tokens = lexer.tokenize()
parser = Parser(
tokens, self.engine.template_libraries, self.engine.template_builtins,
+ self.origin,
)
try:
@@ -444,7 +445,7 @@ class DebugLexer(Lexer):
class Parser(object):
- def __init__(self, tokens, libraries=None, builtins=None):
+ def __init__(self, tokens, libraries=None, builtins=None, origin=None):
self.tokens = tokens
self.tags = {}
self.filters = {}
@@ -458,6 +459,7 @@ class Parser(object):
self.libraries = libraries
for builtin in builtins:
self.add_library(builtin)
+ self.origin = origin
def parse(self, parse_until=None):
"""
@@ -534,8 +536,10 @@ class Parser(object):
)
if isinstance(nodelist, NodeList) and not isinstance(node, TextNode):
nodelist.contains_nontext = True
- # Set token here since we can't modify the node __init__ method
+ # Set origin and token here since we can't modify the node __init__()
+ # method.
node.token = token
+ node.origin = self.origin
nodelist.append(node)
def error(self, token, e):
diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py
index 35dc9f0..eba65e5 100644
--- a/django/template/defaultfilters.py
+++ b/django/template/defaultfilters.py
@@ -888,7 +888,7 @@ def yesno(value, arg=None):
def filesizeformat(bytes):
"""
Formats the value like a 'human-readable' file size (i.e. 13 KB, 4.1 MB,
- 102 bytes, etc).
... 24384 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-django.git
More information about the Python-modules-commits
mailing list