--- /srv/reproducible-results/rbuild-debian/r-b-build.OaHKgKDc/b1/python-django_5.1~beta1-1_armhf.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.OaHKgKDc/b2/python-django_5.1~beta1-1_armhf.changes ├── Files │ @@ -1,3 +1,3 @@ │ │ - d4ceeea8b07874684c9a4a8e90df4503 3035708 doc optional python-django-doc_5.1~beta1-1_all.deb │ + 4383421edb149faa4a1a32b84a5dcb67 3093440 doc optional python-django-doc_5.1~beta1-1_all.deb │ 7c2aaf7095486cbf3496a94e2e354c12 2837708 python optional python3-django_5.1~beta1-1_all.deb ├── python-django-doc_5.1~beta1-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-06-26 17:15:54.000000 debian-binary │ │ --rw-r--r-- 0 0 0 15508 2024-06-26 17:15:54.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 3020008 2024-06-26 17:15:54.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 15648 2024-06-26 17:15:54.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 3077600 2024-06-26 17:15:54.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── file list │ │ │ │ @@ -1,3 +1,3 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 979 2024-06-26 17:15:54.000000 ./control │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61424 2024-06-26 17:15:54.000000 ./md5sums │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61808 2024-06-26 17:15:54.000000 ./md5sums │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: python-django-doc │ │ │ │ Source: python-django │ │ │ │ Version: 3:5.1~beta1-1 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian Python Team │ │ │ │ -Installed-Size: 24687 │ │ │ │ +Installed-Size: 25016 │ │ │ │ Depends: libjs-sphinxdoc (>= 7.2.2) │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Homepage: http://www.djangoproject.com/ │ │ │ │ Description: High-level Python web development framework (documentation) │ │ │ │ Django is a high-level web application framework that loosely follows the │ │ │ │ model-view-controller design pattern. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ │ │ │ ├── line order │ │ │ │ │ @@ -21,14 +21,15 @@ │ │ │ │ │ usr/share/doc/python-django-doc/html/_images/django_unittest_classes_hierarchy.svg │ │ │ │ │ usr/share/doc/python-django-doc/html/_images/fieldsets.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_images/list_filter.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_images/postmortem.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_images/raw_id_fields.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_images/template-lines.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_images/triage_process.svg │ │ │ │ │ +usr/share/doc/python-django-doc/html/_static/base-stemmer.js │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/basic.css │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/console-tabs.css │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/default.css │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/djangodocs.css │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/docicons-behindscenes.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/docicons-note.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/docicons-philosophy.png │ │ │ │ │ @@ -39,18 +40,21 @@ │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/fontawesome/css/fa-brands.min.css │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.eot.gz │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.svg │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.ttf.gz │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.woff │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.woff2 │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/homepage.css │ │ │ │ │ +usr/share/doc/python-django-doc/html/_static/italian-stemmer.js │ │ │ │ │ +usr/share/doc/python-django-doc/html/_static/language_data.js │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/minus.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/plus.png │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/pygments.css │ │ │ │ │ usr/share/doc/python-django-doc/html/_static/reset-fonts-grids.css │ │ │ │ │ +usr/share/doc/python-django-doc/html/_static/translations.js │ │ │ │ │ usr/share/doc/python-django-doc/html/contents.html │ │ │ │ │ usr/share/doc/python-django-doc/html/faq/admin.html │ │ │ │ │ usr/share/doc/python-django-doc/html/faq/contributing.html │ │ │ │ │ usr/share/doc/python-django-doc/html/faq/general.html │ │ │ │ │ usr/share/doc/python-django-doc/html/faq/help.html │ │ │ │ │ usr/share/doc/python-django-doc/html/faq/index.html │ │ │ │ │ usr/share/doc/python-django-doc/html/faq/install.html │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -28,14 +28,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18121 2024-06-25 20:46:34.000000 ./usr/share/doc/python-django-doc/html/_images/fieldsets.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 48020 2024-06-25 20:46:34.000000 ./usr/share/doc/python-django-doc/html/_images/list_filter.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12685 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_images/postmortem.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2017 2024-02-15 11:17:02.000000 ./usr/share/doc/python-django-doc/html/_images/raw_id_fields.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15461 2024-02-15 11:17:02.000000 ./usr/share/doc/python-django-doc/html/_images/template-lines.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20673 2024-02-15 11:17:02.000000 ./usr/share/doc/python-django-doc/html/_images/triage_process.svg │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/ │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8133 2024-06-16 14:34:33.000000 ./usr/share/doc/python-django-doc/html/_static/base-stemmer.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15094 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/basic.css │ │ │ │ -rw-r--r-- 0 root (0) root (0) 875 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/console-tabs.css │ │ │ │ -rw-r--r-- 0 root (0) root (0) 92 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/default.css │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7604 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/djangodocs.css │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1065 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/docicons-behindscenes.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 559 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/docicons-note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 791 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/docicons-philosophy.png │ │ │ │ @@ -49,647 +50,649 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 64105 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.eot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 503035 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.svg │ │ │ │ -rw-r--r-- 0 root (0) root (0) 63995 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.ttf.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 63024 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.woff │ │ │ │ -rw-r--r-- 0 root (0) root (0) 53928 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/fontawesome/webfonts/fa-brands-400.woff2 │ │ │ │ -rw-r--r-- 0 root (0) root (0) 892 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/homepage.css │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29065 2024-06-16 14:34:33.000000 ./usr/share/doc/python-django-doc/html/_static/italian-stemmer.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15646 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/language_data.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 90 2024-06-16 14:34:33.000000 ./usr/share/doc/python-django-doc/html/_static/minus.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 90 2024-06-16 14:34:33.000000 ./usr/share/doc/python-django-doc/html/_static/plus.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4699 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/pygments.css │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5522 2023-06-05 12:53:07.000000 ./usr/share/doc/python-django-doc/html/_static/reset-fonts-grids.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 113172 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/contents.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3579 2024-06-16 14:34:33.000000 ./usr/share/doc/python-django-doc/html/_static/translations.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 113247 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/contents.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20584 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/admin.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13299 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/contributing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20533 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/general.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12727 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/help.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16678 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11953 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/install.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14721 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/models.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10342 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/troubleshooting.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13240 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/usage.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 627800 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/genindex.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9756 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/glossary.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20667 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/admin.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13388 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/contributing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20584 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/general.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12822 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/help.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16765 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12050 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/install.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14818 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/models.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10433 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/troubleshooting.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13337 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/faq/usage.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 629230 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/genindex.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9848 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/glossary.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19300 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/auth-remote-user.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 42198 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/csrf.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19882 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-file-storage.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46332 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-lookups.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 53776 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-management-commands.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 94446 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-model-fields.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24280 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-template-backend.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 127781 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-template-tags.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6811 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/delete-app.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19388 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/auth-remote-user.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 42296 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/csrf.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19975 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-file-storage.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46425 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-lookups.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 53881 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-management-commands.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 94544 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-model-fields.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24373 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-template-backend.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 127859 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/custom-template-tags.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6904 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/delete-app.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9326 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/daphne.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7705 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/hypercorn.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11370 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9349 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/uvicorn.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32026 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/checklist.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10197 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9425 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/daphne.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7804 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/hypercorn.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11474 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9448 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/uvicorn.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32120 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/checklist.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10293 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16656 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/apache-auth.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8002 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/gunicorn.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12841 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24454 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/modwsgi.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16164 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/uwsgi.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 49255 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/error-reporting.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9204 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16283 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/initial-data.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13798 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/legacy-databases.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36291 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/logging.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22342 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/outputting-csv.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15296 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/outputting-pdf.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17307 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/overriding-templates.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16753 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/apache-auth.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8101 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/gunicorn.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12940 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24554 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/modwsgi.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16263 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/uwsgi.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 49381 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/error-reporting.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9299 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16378 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/initial-data.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13891 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/legacy-databases.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36387 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/logging.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22433 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/outputting-csv.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15387 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/outputting-pdf.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17402 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/overriding-templates.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/static-files/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16826 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/static-files/deployment.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26751 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/static-files/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17059 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/upgrade-version.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15581 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/windows.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 50508 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/writing-migrations.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30389 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16924 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/static-files/deployment.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26845 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/static-files/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17152 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/upgrade-version.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15670 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/windows.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 50599 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/howto/writing-migrations.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30456 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16292 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/bugs-and-features.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23222 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/committing-code.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17004 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11595 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/localizing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13679 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/new-contributors.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34018 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/triaging-tickets.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16373 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/bugs-and-features.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23296 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/committing-code.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17104 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11687 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/localizing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13771 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/new-contributors.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34038 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/triaging-tickets.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 47976 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/coding-style.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8212 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18375 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/javascript.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30188 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/submitting-patches.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 69676 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/unit-tests.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23976 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/working-with-git.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 47204 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-documentation.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 133869 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/deprecation.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19977 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/git.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 54566 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/howto-release-django.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13267 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12929 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/mailing-lists.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24598 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/organization.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20594 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/release-process.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19200 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/security.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48069 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/coding-style.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8313 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18478 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/javascript.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30237 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/submitting-patches.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 69779 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/unit-tests.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24051 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-code/working-with-git.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 47232 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/contributing/writing-documentation.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 133962 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/deprecation.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20074 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/git.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 54596 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/howto-release-django.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13366 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13027 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/mailing-lists.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24693 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/organization.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20683 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/release-process.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19295 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/internals/security.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 56754 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/contributing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7808 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10457 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/install.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 40626 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/overview.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32675 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/reusable-apps.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35511 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial01.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 79533 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial02.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 58467 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial03.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46452 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial04.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 79327 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial05.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18173 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial06.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46245 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial07.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13916 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial08.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21480 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/whatsnext.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 56827 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/contributing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7909 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10552 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/install.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40703 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/overview.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32770 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/reusable-apps.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35592 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial01.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 79592 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial02.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 58536 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial03.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46539 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial04.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 79416 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial05.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18271 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial06.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46292 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial07.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14005 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/tutorial08.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21560 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/intro/whatsnext.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10126 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/api-stability.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26714 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/design-philosophies.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7351 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/distributions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6956 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 101908 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/objects.inv │ │ │ │ --rw-r--r-- 0 root (0) root (0) 42351 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/py-modindex.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10209 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/api-stability.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26799 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/design-philosophies.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7448 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/distributions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7053 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/misc/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 101903 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/objects.inv │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 42431 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/py-modindex.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 63711 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/applications.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 145103 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/checks.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 63813 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/applications.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 145210 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/checks.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39247 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/base.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 193892 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/flattened-index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 93058 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/generic-date-based.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31109 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/generic-display.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48533 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/generic-editing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20944 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 53812 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-date-based.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35848 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-editing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31636 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-multiple-object.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17807 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-simple.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28157 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-single-object.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5934 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17980 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/clickjacking.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39347 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/base.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 193994 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/flattened-index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 93184 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/generic-date-based.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31209 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/generic-display.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48635 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/generic-editing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21044 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 53963 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-date-based.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35948 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-editing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31737 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-multiple-object.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17907 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-simple.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28262 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins-single-object.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6034 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/class-based-views/mixins.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18065 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/clickjacking.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 59939 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/actions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 19593 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/admindocs.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30825 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/filters.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 461586 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14383 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/javascript.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 110186 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/auth.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 95534 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/contenttypes.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41525 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/flatpages.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 60033 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/actions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 19694 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/admindocs.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30928 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/filters.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 461731 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14486 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/admin/javascript.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 110328 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/auth.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 95644 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/contenttypes.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41625 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/flatpages.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7998 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/admin.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16026 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/commands.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73284 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/db-api.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6640 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/deployment.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15372 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/feeds.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28408 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/forms-api.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 98184 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/functions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 271564 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/gdal.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29345 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/geoip2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 103223 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/geoquerysets.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 177744 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/geos.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21552 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8103 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/admin.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16129 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/commands.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73387 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/db-api.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6748 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/deployment.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15483 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/feeds.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28533 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/forms-api.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 98361 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/functions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 271880 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/gdal.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29470 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/geoip2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 103330 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/geoquerysets.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 177904 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/geos.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21655 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/index.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24524 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/geolibs.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39823 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12474 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/postgis.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13610 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/spatialite.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30855 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/layermapping.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28947 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/measure.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36251 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/model-api.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8691 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/ogrinspect.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11470 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/serializers.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7394 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/sitemaps.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15603 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/testing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 98048 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/tutorial.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7285 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/utils.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23846 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/humanize.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17332 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 59739 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/messages.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24628 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/geolibs.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39917 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12580 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/postgis.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13716 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/install/spatialite.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30967 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/layermapping.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29054 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/measure.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36372 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/model-api.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8798 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/ogrinspect.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11573 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/serializers.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7497 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/sitemaps.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15706 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/testing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 98147 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/tutorial.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7388 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/gis/utils.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23938 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/humanize.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17422 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 59843 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/messages.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 66331 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/aggregates.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33556 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/constraints.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10765 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/expressions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 125989 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/fields.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 36391 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/forms.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10622 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/functions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15895 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29129 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/indexes.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17625 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/lookups.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34494 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/operations.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 67010 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11182 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/validators.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20014 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/redirects.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 76512 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/sitemaps.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 65385 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/sites.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 75561 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/staticfiles.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 106504 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/syndication.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28773 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/csrf.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 120580 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/databases.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 230316 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/django-admin.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 55464 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/exceptions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 66428 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/aggregates.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33666 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/constraints.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10870 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/expressions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 126097 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/fields.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 36492 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/forms.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10729 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/functions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15998 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29248 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/indexes.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17733 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/lookups.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34627 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/operations.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 67137 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/search.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11291 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/postgres/validators.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20108 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/redirects.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 76612 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/sitemaps.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 65461 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/sites.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 75665 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/staticfiles.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 106601 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/contrib/syndication.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28870 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/csrf.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 120674 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/databases.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 230421 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/django-admin.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 55621 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/exceptions.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29116 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/file.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7786 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45440 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/storage.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34520 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/uploads.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29236 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/file.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7886 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45596 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/storage.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34636 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/files/uploads.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 228056 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/api.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 223435 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/fields.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9061 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/formsets.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12228 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27852 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/models.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35029 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/renderers.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48083 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/validation.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 148919 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/widgets.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8978 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 52262 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/logging.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73282 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/middleware.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 91639 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/migration-operations.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 228193 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/api.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 223595 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/fields.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9163 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/formsets.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12326 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27958 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/models.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35145 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/renderers.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48175 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/validation.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 149087 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/forms/widgets.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9077 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 52367 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/logging.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73416 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/middleware.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 91809 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/migration-operations.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13163 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/class.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 53524 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/conditional-expressions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46647 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/constraints.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 324382 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/database-functions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 184188 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/expressions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 341252 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/fields.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6994 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30215 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/indexes.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 129616 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/instances.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37282 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/lookups.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17856 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/meta.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 65467 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/options.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 519499 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/querysets.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 38351 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/relations.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41255 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/paginator.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 195646 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/request-response.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37374 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/schema-editor.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 369902 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/settings.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 71588 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/signals.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41607 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/template-response.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13263 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/class.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 53628 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/conditional-expressions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46760 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/constraints.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 324622 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/database-functions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 184321 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/expressions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 341490 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/fields.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7094 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30319 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/indexes.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 129745 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/instances.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37392 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/lookups.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17962 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/meta.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 65564 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/options.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 519656 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/querysets.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 38447 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/models/relations.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41386 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/paginator.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 195853 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/request-response.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37501 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/schema-editor.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 370022 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/settings.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 71699 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/signals.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41724 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/template-response.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 140091 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/api.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 299813 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/builtins.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8983 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73687 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/language.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37218 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/unicode.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33300 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/urlresolvers.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 33059 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/urls.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 165753 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/utils.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 72185 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/validators.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23238 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/views.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 140233 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/api.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 299817 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/builtins.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9085 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73757 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/templates/language.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37310 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/unicode.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33410 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/urlresolvers.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 33157 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/urls.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 166036 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/utils.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 72323 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/validators.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23329 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/ref/views.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12903 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/0.95.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25615 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/0.96.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 95808 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.0-porting-guide.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9155 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.0.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8416 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.0.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26537 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9716 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.1.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8352 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.1.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8901 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.1.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46886 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14626 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8223 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12241 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7910 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6779 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7304 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9202 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6461 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 171480 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17448 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8833 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9213 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6603 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6951 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6265 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.14.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7008 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.15.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5898 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.16.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6154 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.17.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6450 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.18.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7037 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.19.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10908 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5781 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.20.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7143 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.21.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8293 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.22.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13782 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.23.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6279 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.24.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6287 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.25.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6391 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.26.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7651 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.27.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6525 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.28.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6478 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.29.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11677 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9974 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10766 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6900 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7054 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8860 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6744 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 122241 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5357 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6855 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5738 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11451 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13937 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5553 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5503 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 124212 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5492 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5472 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5460 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7631 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8980 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10662 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5763 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 90703 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5455 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5834 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13069 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6110 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9173 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11398 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.14.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5795 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.15.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6188 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.16.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6026 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.17.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11536 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.18.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6243 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.19.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9724 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7430 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.20.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10729 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.21.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8040 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.22.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8980 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11404 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5779 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8193 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7114 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8955 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6590 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 152057 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6252 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5786 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5969 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5802 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13479 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11767 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9759 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8481 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14000 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6085 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9148 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11381 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 98658 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11455 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12181 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9643 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8962 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20905 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6967 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10677 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14184 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6141 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5945 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6009 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 153065 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20204 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7885 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7980 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25001 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13837 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7270 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7223 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7936 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10707 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5849 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11764 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 236781 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15059 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13207 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5420 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6699 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6142 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7208 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.14.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6647 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.15.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9233 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.16.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5883 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.17.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8265 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.18.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9160 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.19.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11549 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20996 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10748 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10730 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9950 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12556 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11047 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8481 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 234529 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13726 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6638 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9233 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5883 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8931 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16226 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15970 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5396 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9765 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7870 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7601 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7439 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5917 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 177132 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8960 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7721 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7012 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5755 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5863 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9947 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11699 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8125 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7247 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6976 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6684 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7896 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5856 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 104929 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9617 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8259 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13757 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6254 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6262 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6366 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.14.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9000 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.15.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8300 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7330 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7187 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8118 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7675 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5729 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5883 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8513 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 64284 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14260 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6491 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7530 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5874 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7952 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5955 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.14.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6334 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.15.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9011 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.16.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5169 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.17.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6804 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.18.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6936 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.19.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11663 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6183 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.20.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6356 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.21.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7582 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.22.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6249 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.23.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9303 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.24.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6149 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.25.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10050 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.26.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7637 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.27.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8828 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.28.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9888 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15951 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7139 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6471 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8045 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9834 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7609 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 71168 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9582 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9002 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6019 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6804 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6936 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6159 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.14.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7067 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10879 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8849 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6372 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5991 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9631 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7042 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6321 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 88611 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14205 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7573 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6247 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9303 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6835 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6125 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.14.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8174 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12097 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8260 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7153 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7248 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7560 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7046 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6339 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 113658 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13131 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6868 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10050 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7637 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9555 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7261 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.14.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6802 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.15.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6157 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.16.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6603 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.17.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6469 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.18.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8176 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.19.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8432 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6818 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.20.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6502 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.21.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7966 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.22.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7018 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.23.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6328 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.24.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7656 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.25.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6750 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11636 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8806 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6329 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5785 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6052 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5839 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 108213 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12421 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6436 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11231 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6839 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9817 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6520 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7236 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6777 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6132 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6586 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 99170 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11245 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6809 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6502 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7966 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6994 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10760 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6130 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7890 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6260 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7136 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7064 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5866 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8159 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 97645 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13902 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6319 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.10.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7680 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.11.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5948 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.12.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5139 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.13.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9925 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7870 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6358 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8323 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10628 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8083 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8363 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5808 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.9.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 78407 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8820 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10414 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.2.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10106 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.3.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7955 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.4.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8152 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.5.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5139 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.6.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5664 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.7.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 100225 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 66406 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.1.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 48271 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 158594 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/security.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3862 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1864434 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/searchindex.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12994 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/0.95.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25700 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/0.96.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 95916 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.0-porting-guide.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9250 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.0.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8509 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.0.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26634 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9811 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.1.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8447 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.1.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8996 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.1.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46969 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14723 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8318 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12338 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8005 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6876 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7399 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9295 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6558 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 171562 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17543 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8928 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9310 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6700 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7048 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6362 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.14.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7105 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.15.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5995 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.16.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6251 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.17.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6547 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.18.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7134 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.19.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11005 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5878 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.20.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7238 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.21.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8390 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.22.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13879 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.23.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6376 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.24.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6384 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.25.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6488 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.26.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7748 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.27.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6622 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.28.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6575 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.29.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11774 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10071 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10863 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6997 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7151 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8955 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6841 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 122336 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5454 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6950 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5835 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11546 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14032 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5650 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5600 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 124305 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5589 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5569 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5557 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7728 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9077 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10759 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5858 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 90780 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5552 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5931 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13162 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6207 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9268 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11491 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.14.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5892 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.15.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6285 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.16.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6123 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.17.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11631 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.18.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6340 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.19.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9821 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7525 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.20.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10826 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.21.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8137 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.22.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9077 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11501 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5874 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8288 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7211 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9052 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6687 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 152140 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6349 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5883 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6066 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5899 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13574 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11864 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9856 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8578 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14093 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6182 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9243 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11474 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 98748 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11552 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12276 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9738 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9059 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20998 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7064 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10772 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14275 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6238 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6042 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6106 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 153159 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20301 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7982 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8077 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25096 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13932 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7367 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7320 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8033 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10802 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5946 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11861 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 236859 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15156 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13300 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5517 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6796 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6239 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7305 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.14.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6744 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.15.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9330 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.16.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5978 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.17.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8358 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.18.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9257 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.19.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11644 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21093 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10845 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10827 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10045 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12653 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11144 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8576 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 234611 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13823 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6735 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9330 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5978 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9024 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16307 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16061 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5493 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9862 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7967 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7698 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7536 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6014 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 177226 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/1.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9057 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7818 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7109 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5852 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5960 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10040 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11794 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8222 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7344 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7073 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6781 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7993 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5953 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 105026 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9712 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8356 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13854 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6351 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6359 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6463 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.14.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9095 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.15.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8393 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7427 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7280 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8215 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7772 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5826 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5980 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8608 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 64357 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14357 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6588 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7627 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5971 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8049 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6052 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.14.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6431 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.15.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9108 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.16.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5266 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.17.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6899 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.18.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7033 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.19.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11758 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6278 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.20.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6453 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.21.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7679 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.22.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6346 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.23.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9400 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.24.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6244 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.25.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10137 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.26.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7732 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.27.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8923 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.28.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9985 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16048 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7236 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6568 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8142 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9929 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7706 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 71265 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/2.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9679 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9099 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6116 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6899 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7033 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6254 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.14.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7164 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10976 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8946 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6469 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6088 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9728 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7139 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6418 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 88704 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14302 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7670 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6344 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9400 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6930 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6220 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.14.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8271 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12194 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8357 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7250 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7343 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7657 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7141 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6436 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 113755 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13228 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6963 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10137 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7732 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9650 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7356 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.14.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6897 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.15.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6252 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.16.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6698 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.17.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6564 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.18.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8271 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.19.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8529 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6913 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.20.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6597 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.21.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8061 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.22.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7113 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.23.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6423 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.24.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7751 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.25.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6847 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11733 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8901 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6426 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5882 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6149 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5936 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 108310 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/3.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12508 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6531 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11326 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6936 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9912 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6617 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7331 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6872 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6227 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6681 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 99267 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11338 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6904 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6597 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8061 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7089 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10855 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6227 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7987 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6357 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7231 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7159 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5963 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8254 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 97740 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13997 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6414 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.10.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7775 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.11.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6045 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.12.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5236 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.13.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10022 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7965 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6455 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8418 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10723 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8178 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8460 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.8.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5905 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.9.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 78504 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/4.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8917 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10509 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.2.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10201 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.3.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8050 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.4.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8249 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.5.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5236 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.6.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5761 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.7.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 100322 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 66503 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/5.1.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 48370 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 158681 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/releases/security.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3918 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/search.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2080972 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/searchindex.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1096 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/templatebuiltins.js │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 43049 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/async.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 43147 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/async.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 144529 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/customizing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 224263 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/default.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11661 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 82890 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/passwords.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 152312 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/cache.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35541 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/checks.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 144627 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/customizing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 224411 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/default.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11761 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 83010 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/auth/passwords.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 152393 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/cache.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35636 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/checks.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45832 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/generic-display.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 38802 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/generic-editing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21781 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 40241 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/intro.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 97180 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/mixins.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28098 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/conditional-view-processing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45914 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/generic-display.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 38902 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/generic-editing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21881 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40341 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/intro.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 97294 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/class-based-views/mixins.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 28189 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/conditional-view-processing.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 81893 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/aggregation.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 81985 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/aggregation.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5616 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45048 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/many_to_many.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34878 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/many_to_one.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25129 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/one_to_one.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22948 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/fixtures.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6671 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17495 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/instrumentation.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 55732 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/managers.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 177775 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/models.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 89239 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/multi-db.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61534 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/optimization.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 248262 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/queries.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16728 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 49191 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/sql.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14316 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/tablespaces.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 76083 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/transactions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 91309 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/email.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7901 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/external-packages.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35300 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/files.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5719 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45151 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/many_to_many.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34981 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/many_to_one.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25230 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/examples/one_to_one.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23050 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/fixtures.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6771 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17595 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/instrumentation.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 55826 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/managers.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 177866 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/models.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 89344 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/multi-db.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61634 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/optimization.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 248305 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/queries.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16812 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/search.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 49309 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/sql.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14421 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/tablespaces.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 76209 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/db/transactions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 91400 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/email.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7998 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/external-packages.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35395 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/files.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 142499 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/formsets.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 96281 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 51032 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/media.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 169654 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/modelforms.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 142613 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/formsets.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 96380 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 51132 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/media.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 169764 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/forms/modelforms.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22803 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/decorators.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 46252 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/file-uploads.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5171 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/generic-views.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6025 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 53961 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/middleware.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 115311 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/sessions.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39537 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/shortcuts.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 93135 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/urls.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29178 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/views.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22917 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/decorators.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 46360 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/file-uploads.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5271 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/generic-views.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6125 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 54057 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/middleware.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 115417 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/sessions.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39643 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/shortcuts.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 93231 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/urls.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29274 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/http/views.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 20608 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/formatting.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11447 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 71952 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/timezones.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 242342 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/translation.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27082 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23156 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/install.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45835 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/logging.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 91920 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/migrations.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22426 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/pagination.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 38047 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/performance.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 31316 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/security.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 72979 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/serialization.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34418 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/settings.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 42801 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/signals.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 40140 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/signing.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73182 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/templates.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 20708 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/formatting.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11548 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 72054 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/timezones.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 242473 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/i18n/translation.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27181 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23253 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/install.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45934 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/logging.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 92011 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/migrations.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22521 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/pagination.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 38136 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/performance.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 31416 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/security.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73051 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/serialization.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34511 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/settings.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 42911 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/signals.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40247 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/signing.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73299 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/templates.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 109815 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/advanced.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7255 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/index.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 42447 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/overview.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 284693 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/tools.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 109958 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/advanced.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7355 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/index.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 42550 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/overview.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 284897 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/topics/testing/tools.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 407 2024-06-26 17:15:54.000000 ./usr/share/doc-base/python-django-doc.python-django-doc │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/doctools.js -> ../../../../javascript/sphinxdoc/1.0/doctools.js │ │ │ │ -lrwxrwxrwx 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/language_data.js -> ../../../../javascript/sphinxdoc/1.0/language_data.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/searchtools.js -> ../../../../javascript/sphinxdoc/1.0/searchtools.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2024-06-26 17:15:54.000000 ./usr/share/doc/python-django-doc/html/_static/sphinx_highlight.js -> ../../../../javascript/sphinxdoc/1.0/sphinx_highlight.js │ │ │ ├── ./usr/share/doc/python-django-doc/html/_static/documentation_options.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ const DOCUMENTATION_OPTIONS = { │ │ │ │ │ VERSION: '5.1b1', │ │ │ │ │ - LANGUAGE: 'en', │ │ │ │ │ + LANGUAGE: 'it', │ │ │ │ │ COLLAPSE_INDEX: false, │ │ │ │ │ BUILDER: 'djangohtml', │ │ │ │ │ FILE_SUFFIX: '.html', │ │ │ │ │ LINK_SUFFIX: '.html', │ │ │ │ │ HAS_SOURCE: false, │ │ │ │ │ SOURCELINK_SUFFIX: '.txt', │ │ │ │ │ NAVIGATION_WITH_KEYS: false, │ │ │ ├── ./usr/share/doc/python-django-doc/html/contents.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Django documentation contents — Django 5.1b1 documentation │ │ │ │ + Django documentation contents — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ -

Django 5.1b1 documentation

│ │ │ │ +

Django 5.1b1 documentazione

│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ @@ -414,15 +415,15 @@ │ │ │ │
  • Async views
  • │ │ │ │
  • Async safety
  • │ │ │ │
  • Async adapter functions
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -
  • “How-to” guides │ │ │ │
  • │ │ │ │
  • Meta-documentation and miscellany │ │ │ │
  • │ │ │ │
    │ │ │ │

    Indices, glossary and tables

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1077,40 +1078,40 @@ │ │ │ │
  • Indices, glossary and tables
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Django documentation

    │ │ │ │ + title="capitolo successivo">Django documentation

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ _u_p | _n_e_x_t » │ │ │ │ │ ************ DDjjaannggoo ddooccuummeennttaattiioonn ccoonntteennttss_?¶ ************ │ │ │ │ │ * _G_e_t_t_i_n_g_ _s_t_a_r_t_e_d │ │ │ │ │ o _D_j_a_n_g_o_ _a_t_ _a_ _g_l_a_n_c_e │ │ │ │ │ # _D_e_s_i_g_n_ _y_o_u_r_ _m_o_d_e_l │ │ │ │ │ # _I_n_s_t_a_l_l_ _i_t │ │ │ │ │ @@ -257,15 +257,15 @@ │ │ │ │ │ # _L_o_c_a_l_f_l_a_v_o_r │ │ │ │ │ # _C_o_m_m_e_n_t_s │ │ │ │ │ # _F_o_r_m_t_o_o_l_s │ │ │ │ │ o _A_s_y_n_c_h_r_o_n_o_u_s_ _s_u_p_p_o_r_t │ │ │ │ │ # _A_s_y_n_c_ _v_i_e_w_s │ │ │ │ │ # _A_s_y_n_c_ _s_a_f_e_t_y │ │ │ │ │ # _A_s_y_n_c_ _a_d_a_p_t_e_r_ _f_u_n_c_t_i_o_n_s │ │ │ │ │ - * _“_H_o_w_-_t_o_”_ _g_u_i_d_e_s │ │ │ │ │ + * _«_H_o_w_-_t_o_»_ _g_u_i_d_e_s │ │ │ │ │ o _H_o_w_ _t_o_ _a_u_t_h_e_n_t_i_c_a_t_e_ _u_s_i_n_g_ _R_E_M_O_T_E___U_S_E_R │ │ │ │ │ # _C_o_n_f_i_g_u_r_a_t_i_o_n │ │ │ │ │ # _U_s_i_n_g_ _R_E_M_O_T_E___U_S_E_R_ _o_n_ _l_o_g_i_n_ _p_a_g_e_s_ _o_n_l_y │ │ │ │ │ o _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_’_s_ _C_S_R_F_ _p_r_o_t_e_c_t_i_o_n │ │ │ │ │ # _U_s_i_n_g_ _C_S_R_F_ _p_r_o_t_e_c_t_i_o_n_ _w_i_t_h_ _A_J_A_X │ │ │ │ │ # _U_s_i_n_g_ _C_S_R_F_ _p_r_o_t_e_c_t_i_o_n_ _i_n_ _J_i_n_j_a_2_ _t_e_m_p_l_a_t_e_s │ │ │ │ │ # _U_s_i_n_g_ _t_h_e_ _d_e_c_o_r_a_t_o_r_ _m_e_t_h_o_d │ │ │ │ │ @@ -363,23 +363,23 @@ │ │ │ │ │ # _M_i_g_r_a_t_i_n_g_ _d_a_t_a_ _b_e_t_w_e_e_n_ _t_h_i_r_d_-_p_a_r_t_y_ _a_p_p_s │ │ │ │ │ # _C_h_a_n_g_i_n_g_ _a_ _M_a_n_y_T_o_M_a_n_y_F_i_e_l_d_ _t_o_ _u_s_e_ _a_ _t_h_r_o_u_g_h_ _m_o_d_e_l │ │ │ │ │ # _C_h_a_n_g_i_n_g_ _a_n_ _u_n_m_a_n_a_g_e_d_ _m_o_d_e_l_ _t_o_ _m_a_n_a_g_e_d │ │ │ │ │ o _H_o_w_ _t_o_ _d_e_l_e_t_e_ _a_ _D_j_a_n_g_o_ _a_p_p_l_i_c_a_t_i_o_n │ │ │ │ │ * _D_j_a_n_g_o_ _F_A_Q │ │ │ │ │ o _F_A_Q_:_ _G_e_n_e_r_a_l │ │ │ │ │ # _W_h_y_ _d_o_e_s_ _t_h_i_s_ _p_r_o_j_e_c_t_ _e_x_i_s_t_? │ │ │ │ │ - # _W_h_a_t_ _d_o_e_s_ _“_D_j_a_n_g_o_”_ _m_e_a_n_,_ _a_n_d_ _h_o_w_ _d_o_ _y_o_u_ _p_r_o_n_o_u_n_c_e_ _i_t_? │ │ │ │ │ + # _W_h_a_t_ _d_o_e_s_ _«_D_j_a_n_g_o_»_ _m_e_a_n_,_ _a_n_d_ _h_o_w_ _d_o_ _y_o_u_ _p_r_o_n_o_u_n_c_e_ _i_t_? │ │ │ │ │ # _I_s_ _D_j_a_n_g_o_ _s_t_a_b_l_e_? │ │ │ │ │ # _D_o_e_s_ _D_j_a_n_g_o_ _s_c_a_l_e_? │ │ │ │ │ # _W_h_o_’_s_ _b_e_h_i_n_d_ _t_h_i_s_? │ │ │ │ │ # _H_o_w_ _i_s_ _D_j_a_n_g_o_ _l_i_c_e_n_s_e_d_? │ │ │ │ │ # _W_h_y_ _d_o_e_s_ _D_j_a_n_g_o_ _i_n_c_l_u_d_e_ _P_y_t_h_o_n_’_s_ _l_i_c_e_n_s_e_ _f_i_l_e_? │ │ │ │ │ # _W_h_i_c_h_ _s_i_t_e_s_ _u_s_e_ _D_j_a_n_g_o_? │ │ │ │ │ # _D_j_a_n_g_o_ _a_p_p_e_a_r_s_ _t_o_ _b_e_ _a_ _M_V_C_ _f_r_a_m_e_w_o_r_k_,_ _b_u_t_ _y_o_u_ _c_a_l_l_ _t_h_e │ │ │ │ │ - _C_o_n_t_r_o_l_l_e_r_ _t_h_e_ _“_v_i_e_w_”_,_ _a_n_d_ _t_h_e_ _V_i_e_w_ _t_h_e_ _“_t_e_m_p_l_a_t_e_”_._ _H_o_w_ _c_o_m_e │ │ │ │ │ + _C_o_n_t_r_o_l_l_e_r_ _t_h_e_ _«_v_i_e_w_»_,_ _a_n_d_ _t_h_e_ _V_i_e_w_ _t_h_e_ _«_t_e_m_p_l_a_t_e_»_._ _H_o_w_ _c_o_m_e │ │ │ │ │ _y_o_u_ _d_o_n_’_t_ _u_s_e_ _t_h_e_ _s_t_a_n_d_a_r_d_ _n_a_m_e_s_? │ │ │ │ │ # _<_F_r_a_m_e_w_o_r_k_ _X_>_ _d_o_e_s_ _<_f_e_a_t_u_r_e_ _Y_>_ _–_ _w_h_y_ _d_o_e_s_n_’_t_ _D_j_a_n_g_o_? │ │ │ │ │ # _W_h_y_ _d_i_d_ _y_o_u_ _w_r_i_t_e_ _a_l_l_ _o_f_ _D_j_a_n_g_o_ _f_r_o_m_ _s_c_r_a_t_c_h_,_ _i_n_s_t_e_a_d_ _o_f │ │ │ │ │ _u_s_i_n_g_ _o_t_h_e_r_ _P_y_t_h_o_n_ _l_i_b_r_a_r_i_e_s_? │ │ │ │ │ # _I_s_ _D_j_a_n_g_o_ _a_ _c_o_n_t_e_n_t_-_m_a_n_a_g_e_m_e_n_t_-_s_y_s_t_e_m_ _(_C_M_S_)_? │ │ │ │ │ # _H_o_w_ _c_a_n_ _I_ _d_o_w_n_l_o_a_d_ _t_h_e_ _D_j_a_n_g_o_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _t_o_ _r_e_a_d_ _i_t │ │ │ │ │ _o_f_f_l_i_n_e_? │ │ │ │ │ @@ -412,24 +412,24 @@ │ │ │ │ │ # _H_o_w_ _d_o_ _I_ _a_d_d_ _d_a_t_a_b_a_s_e_-_s_p_e_c_i_f_i_c_ _o_p_t_i_o_n_s_ _t_o_ _m_y_ _C_R_E_A_T_E_ _T_A_B_L_E │ │ │ │ │ _s_t_a_t_e_m_e_n_t_s_,_ _s_u_c_h_ _a_s_ _s_p_e_c_i_f_y_i_n_g_ _M_y_I_S_A_M_ _a_s_ _t_h_e_ _t_a_b_l_e_ _t_y_p_e_? │ │ │ │ │ o _F_A_Q_:_ _T_h_e_ _a_d_m_i_n │ │ │ │ │ # _I_ _c_a_n_’_t_ _l_o_g_ _i_n_._ _W_h_e_n_ _I_ _e_n_t_e_r_ _a_ _v_a_l_i_d_ _u_s_e_r_n_a_m_e_ _a_n_d_ _p_a_s_s_w_o_r_d_, │ │ │ │ │ _i_t_ _j_u_s_t_ _b_r_i_n_g_s_ _u_p_ _t_h_e_ _l_o_g_i_n_ _p_a_g_e_ _a_g_a_i_n_,_ _w_i_t_h_ _n_o_ _e_r_r_o_r │ │ │ │ │ _m_e_s_s_a_g_e_s_. │ │ │ │ │ # _I_ _c_a_n_’_t_ _l_o_g_ _i_n_._ _W_h_e_n_ _I_ _e_n_t_e_r_ _a_ _v_a_l_i_d_ _u_s_e_r_n_a_m_e_ _a_n_d_ _p_a_s_s_w_o_r_d_, │ │ │ │ │ - _i_t_ _b_r_i_n_g_s_ _u_p_ _t_h_e_ _l_o_g_i_n_ _p_a_g_e_ _a_g_a_i_n_,_ _w_i_t_h_ _a_ _“_P_l_e_a_s_e_ _e_n_t_e_r_ _a │ │ │ │ │ - _c_o_r_r_e_c_t_ _u_s_e_r_n_a_m_e_ _a_n_d_ _p_a_s_s_w_o_r_d_”_ _e_r_r_o_r_. │ │ │ │ │ + _i_t_ _b_r_i_n_g_s_ _u_p_ _t_h_e_ _l_o_g_i_n_ _p_a_g_e_ _a_g_a_i_n_,_ _w_i_t_h_ _a_ _«_P_l_e_a_s_e_ _e_n_t_e_r_ _a │ │ │ │ │ + _c_o_r_r_e_c_t_ _u_s_e_r_n_a_m_e_ _a_n_d_ _p_a_s_s_w_o_r_d_»_ _e_r_r_o_r_. │ │ │ │ │ # _H_o_w_ _d_o_ _I_ _a_u_t_o_m_a_t_i_c_a_l_l_y_ _s_e_t_ _a_ _f_i_e_l_d_’_s_ _v_a_l_u_e_ _t_o_ _t_h_e_ _u_s_e_r_ _w_h_o │ │ │ │ │ _l_a_s_t_ _e_d_i_t_e_d_ _t_h_e_ _o_b_j_e_c_t_ _i_n_ _t_h_e_ _a_d_m_i_n_? │ │ │ │ │ # _H_o_w_ _d_o_ _I_ _l_i_m_i_t_ _a_d_m_i_n_ _a_c_c_e_s_s_ _s_o_ _t_h_a_t_ _o_b_j_e_c_t_s_ _c_a_n_ _o_n_l_y_ _b_e │ │ │ │ │ _e_d_i_t_e_d_ _b_y_ _t_h_e_ _u_s_e_r_s_ _w_h_o_ _c_r_e_a_t_e_d_ _t_h_e_m_? │ │ │ │ │ # _M_y_ _a_d_m_i_n_-_s_i_t_e_ _C_S_S_ _a_n_d_ _i_m_a_g_e_s_ _s_h_o_w_e_d_ _u_p_ _f_i_n_e_ _u_s_i_n_g_ _t_h_e │ │ │ │ │ _d_e_v_e_l_o_p_m_e_n_t_ _s_e_r_v_e_r_,_ _b_u_t_ _t_h_e_y_’_r_e_ _n_o_t_ _d_i_s_p_l_a_y_i_n_g_ _w_h_e_n_ _u_s_i_n_g │ │ │ │ │ _m_o_d___w_s_g_i_. │ │ │ │ │ - # _M_y_ _“_l_i_s_t___f_i_l_t_e_r_”_ _c_o_n_t_a_i_n_s_ _a_ _M_a_n_y_T_o_M_a_n_y_F_i_e_l_d_,_ _b_u_t_ _t_h_e_ _f_i_l_t_e_r │ │ │ │ │ + # _M_y_ _«_l_i_s_t___f_i_l_t_e_r_»_ _c_o_n_t_a_i_n_s_ _a_ _M_a_n_y_T_o_M_a_n_y_F_i_e_l_d_,_ _b_u_t_ _t_h_e_ _f_i_l_t_e_r │ │ │ │ │ _d_o_e_s_n_’_t_ _d_i_s_p_l_a_y_. │ │ │ │ │ # _S_o_m_e_ _o_b_j_e_c_t_s_ _a_r_e_n_’_t_ _a_p_p_e_a_r_i_n_g_ _i_n_ _t_h_e_ _a_d_m_i_n_. │ │ │ │ │ # _H_o_w_ _c_a_n_ _I_ _c_u_s_t_o_m_i_z_e_ _t_h_e_ _f_u_n_c_t_i_o_n_a_l_i_t_y_ _o_f_ _t_h_e_ _a_d_m_i_n_ _i_n_t_e_r_f_a_c_e_? │ │ │ │ │ # _T_h_e_ _d_y_n_a_m_i_c_a_l_l_y_-_g_e_n_e_r_a_t_e_d_ _a_d_m_i_n_ _s_i_t_e_ _i_s_ _u_g_l_y_!_ _H_o_w_ _c_a_n_ _I │ │ │ │ │ _c_h_a_n_g_e_ _i_t_? │ │ │ │ │ # _W_h_a_t_ _b_r_o_w_s_e_r_s_ _a_r_e_ _s_u_p_p_o_r_t_e_d_ _f_o_r_ _u_s_i_n_g_ _t_h_e_ _a_d_m_i_n_? │ │ │ │ │ # _W_h_a_t_ _a_s_s_i_s_t_i_v_e_ _t_e_c_h_n_o_l_o_g_i_e_s_ _a_r_e_ _s_u_p_p_o_r_t_e_d_ _f_o_r_ _u_s_i_n_g_ _t_h_e │ │ │ │ │ @@ -439,15 +439,15 @@ │ │ │ │ │ # _I_ _s_u_b_m_i_t_t_e_d_ _a_ _b_u_g_ _f_i_x_ _s_e_v_e_r_a_l_ _w_e_e_k_s_ _a_g_o_._ _W_h_y_ _a_r_e_ _y_o_u_ _i_g_n_o_r_i_n_g │ │ │ │ │ _m_y_ _c_o_n_t_r_i_b_u_t_i_o_n_? │ │ │ │ │ # _W_h_e_n_ _a_n_d_ _h_o_w_ _m_i_g_h_t_ _I_ _r_e_m_i_n_d_ _t_h_e_ _t_e_a_m_ _o_f_ _a_ _c_h_a_n_g_e_ _I_ _c_a_r_e │ │ │ │ │ _a_b_o_u_t_? │ │ │ │ │ # _B_u_t_ _I_’_v_e_ _r_e_m_i_n_d_e_d_ _y_o_u_ _s_e_v_e_r_a_l_ _t_i_m_e_s_ _a_n_d_ _y_o_u_ _k_e_e_p_ _i_g_n_o_r_i_n_g_ _m_y │ │ │ │ │ _c_o_n_t_r_i_b_u_t_i_o_n_! │ │ │ │ │ # _I_’_m_ _s_u_r_e_ _m_y_ _t_i_c_k_e_t_ _i_s_ _a_b_s_o_l_u_t_e_l_y_ _1_0_0_%_ _p_e_r_f_e_c_t_,_ _c_a_n_ _I_ _m_a_r_k_ _i_t │ │ │ │ │ - _a_s_ _“_R_e_a_d_y_ _F_o_r_ _C_h_e_c_k_i_n_”_ _m_y_s_e_l_f_? │ │ │ │ │ + _a_s_ _«_R_e_a_d_y_ _F_o_r_ _C_h_e_c_k_i_n_»_ _m_y_s_e_l_f_? │ │ │ │ │ o _T_r_o_u_b_l_e_s_h_o_o_t_i_n_g │ │ │ │ │ # _P_r_o_b_l_e_m_s_ _r_u_n_n_i_n_g_ _d_j_a_n_g_o_-_a_d_m_i_n │ │ │ │ │ # _M_i_s_c_e_l_l_a_n_e_o_u_s │ │ │ │ │ * _A_P_I_ _R_e_f_e_r_e_n_c_e │ │ │ │ │ o _A_p_p_l_i_c_a_t_i_o_n_s │ │ │ │ │ # _P_r_o_j_e_c_t_s_ _a_n_d_ _a_p_p_l_i_c_a_t_i_o_n_s │ │ │ │ │ # _C_o_n_f_i_g_u_r_i_n_g_ _a_p_p_l_i_c_a_t_i_o_n_s │ │ │ │ │ @@ -480,15 +480,15 @@ │ │ │ │ │ # _T_h_e_ _f_l_a_t_p_a_g_e_s_ _a_p_p │ │ │ │ │ # _G_e_o_D_j_a_n_g_o │ │ │ │ │ # _d_j_a_n_g_o_._c_o_n_t_r_i_b_._h_u_m_a_n_i_z_e │ │ │ │ │ # _T_h_e_ _m_e_s_s_a_g_e_s_ _f_r_a_m_e_w_o_r_k │ │ │ │ │ # _d_j_a_n_g_o_._c_o_n_t_r_i_b_._p_o_s_t_g_r_e_s │ │ │ │ │ # _T_h_e_ _r_e_d_i_r_e_c_t_s_ _a_p_p │ │ │ │ │ # _T_h_e_ _s_i_t_e_m_a_p_ _f_r_a_m_e_w_o_r_k │ │ │ │ │ - # _T_h_e_ _“_s_i_t_e_s_”_ _f_r_a_m_e_w_o_r_k │ │ │ │ │ + # _T_h_e_ _«_s_i_t_e_s_»_ _f_r_a_m_e_w_o_r_k │ │ │ │ │ # _T_h_e_ _s_t_a_t_i_c_f_i_l_e_s_ _a_p_p │ │ │ │ │ # _T_h_e_ _s_y_n_d_i_c_a_t_i_o_n_ _f_e_e_d_ _f_r_a_m_e_w_o_r_k │ │ │ │ │ # _a_d_m_i_n │ │ │ │ │ # _a_u_t_h │ │ │ │ │ # _c_o_n_t_e_n_t_t_y_p_e_s │ │ │ │ │ # _f_l_a_t_p_a_g_e_s │ │ │ │ │ # _g_i_s │ │ │ │ │ @@ -652,15 +652,15 @@ │ │ │ │ │ # _H_o_w_ _v_a_l_i_d_a_t_o_r_s_ _a_r_e_ _r_u_n │ │ │ │ │ # _B_u_i_l_t_-_i_n_ _v_a_l_i_d_a_t_o_r_s │ │ │ │ │ o _B_u_i_l_t_-_i_n_ _V_i_e_w_s │ │ │ │ │ # _S_e_r_v_i_n_g_ _f_i_l_e_s_ _i_n_ _d_e_v_e_l_o_p_m_e_n_t │ │ │ │ │ # _E_r_r_o_r_ _v_i_e_w_s │ │ │ │ │ * _M_e_t_a_-_d_o_c_u_m_e_n_t_a_t_i_o_n_ _a_n_d_ _m_i_s_c_e_l_l_a_n_y │ │ │ │ │ o _A_P_I_ _s_t_a_b_i_l_i_t_y │ │ │ │ │ - # _W_h_a_t_ _“_s_t_a_b_l_e_”_ _m_e_a_n_s │ │ │ │ │ + # _W_h_a_t_ _«_s_t_a_b_l_e_»_ _m_e_a_n_s │ │ │ │ │ # _S_t_a_b_l_e_ _A_P_I_s │ │ │ │ │ # _E_x_c_e_p_t_i_o_n_s │ │ │ │ │ o _D_e_s_i_g_n_ _p_h_i_l_o_s_o_p_h_i_e_s │ │ │ │ │ # _O_v_e_r_a_l_l │ │ │ │ │ # _M_o_d_e_l_s │ │ │ │ │ # _D_a_t_a_b_a_s_e_ _A_P_I │ │ │ │ │ # _U_R_L_ _d_e_s_i_g_n │ │ │ │ │ @@ -756,20 +756,20 @@ │ │ │ │ │ # _P_r_e_-_r_e_l_e_a_s_e_ _t_a_s_k_s │ │ │ │ │ # _A_c_t_u_a_l_l_y_ _r_o_l_l_i_n_g_ _t_h_e_ _r_e_l_e_a_s_e │ │ │ │ │ # _M_a_k_i_n_g_ _t_h_e_ _r_e_l_e_a_s_e_(_s_)_ _a_v_a_i_l_a_b_l_e_ _t_o_ _t_h_e_ _p_u_b_l_i_c │ │ │ │ │ # _P_o_s_t_-_r_e_l_e_a_s_e │ │ │ │ │ # _N_e_w_ _s_t_a_b_l_e_ _b_r_a_n_c_h_ _t_a_s_k_s │ │ │ │ │ # _N_o_t_e_s_ _o_n_ _s_e_t_t_i_n_g_ _t_h_e_ _V_E_R_S_I_O_N_ _t_u_p_l_e │ │ │ │ │ ********** IInnddiicceess,, gglloossssaarryy aanndd ttaabblleess_?¶ ********** │ │ │ │ │ - * _I_n_d_e_x │ │ │ │ │ - * _M_o_d_u_l_e_ _I_n_d_e_x │ │ │ │ │ + * _I_n_d_i_c_e │ │ │ │ │ + * _I_n_d_i_c_e_ _d_e_i_ _m_o_d_u_l_i │ │ │ │ │ * _G_l_o_s_s_a_r_y │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _D_j_a_n_g_o_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _c_o_n_t_e_n_t_s │ │ │ │ │ o _I_n_d_i_c_e_s_,_ _g_l_o_s_s_a_r_y_ _a_n_d_ _t_a_b_l_e_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _D_j_a_n_g_o_ _d_o_c_u_m_e_n_t_a_t_i_o_n │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/faq/admin.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - FAQ: The admin — Django 5.1b1 documentation │ │ │ │ + FAQ: The admin — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,15 +54,15 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ccrreeaattee ccuussttoomm ddjjaannggoo--aaddmmiinn ccoommmmaannddss_?¶ ************ │ │ │ │ │ Applications can register their own actions with manage.py. For example, you │ │ │ │ │ might want to add a manage.py action for a Django app that you’re distributing. │ │ │ │ │ In this document, we will be building a custom closepoll command for the polls │ │ │ │ │ application from the _t_u_t_o_r_i_a_l. │ │ │ │ │ @@ -50,15 +50,15 @@ │ │ │ │ │ │ │ │ │ │ poll.opened = False │ │ │ │ │ poll.save() │ │ │ │ │ │ │ │ │ │ self.stdout.write( │ │ │ │ │ self.style.SUCCESS('Successfully closed poll "%s"' % poll_id) │ │ │ │ │ ) │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ 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. 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="") │ │ │ │ │ @@ -120,15 +120,15 @@ │ │ │ │ │ In other words, to override a command, the new command must have the same name │ │ │ │ │ and its app must be before the overridden command’s app in _I_N_S_T_A_L_L_E_D___A_P_P_S. │ │ │ │ │ Management commands from third-party apps that have been unintentionally │ │ │ │ │ overridden can be made available under a new name by creating a new command in │ │ │ │ │ one of your project’s apps (ordered before the third-party app in │ │ │ │ │ _I_N_S_T_A_L_L_E_D___A_P_P_S) which imports the Command of the overridden command. │ │ │ │ │ ********** CCoommmmaanndd oobbjjeeccttss_?¶ ********** │ │ │ │ │ - ccllaassss BaseCommand_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + ccllaassss BaseCommand_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ The base class from which all management commands ultimately derive. │ │ │ │ │ Use this class if you want access to all of the mechanisms which parse the │ │ │ │ │ command-line arguments and work out what code to call in response; if you don’t │ │ │ │ │ need to change any of that behavior, consider using one of its _s_u_b_c_l_a_s_s_e_s. │ │ │ │ │ Subclassing the _B_a_s_e_C_o_m_m_a_n_d class requires that you implement the _h_a_n_d_l_e_(_) │ │ │ │ │ method. │ │ │ │ │ ******** AAttttrriibbuutteess_?¶ ******** │ │ │ │ │ @@ -136,15 +136,15 @@ │ │ │ │ │ _B_a_s_e_C_o_m_m_a_n_d’s _s_u_b_c_l_a_s_s_e_s. │ │ │ │ │ BaseCommand.help_¶ │ │ │ │ │ A short description of the command, which will be printed in the help │ │ │ │ │ message when the user runs the command python manage.py help . │ │ │ │ │ BaseCommand.missing_args_message_¶ │ │ │ │ │ If your command defines mandatory positional arguments, you can customize │ │ │ │ │ the message error returned in the case of missing arguments. The default │ │ │ │ │ - is output by _a_r_g_p_a_r_s_e (“too few arguments”). │ │ │ │ │ + is output by _a_r_g_p_a_r_s_e («too few arguments»). │ │ │ │ │ BaseCommand.output_transaction_¶ │ │ │ │ │ A boolean indicating whether the command outputs SQL statements; if True, │ │ │ │ │ the output will automatically be wrapped with BEGIN; and COMMIT;. Default │ │ │ │ │ value is False. │ │ │ │ │ BaseCommand.requires_migrations_checks_¶ │ │ │ │ │ A boolean; if True, the command prints a warning if the set of migrations │ │ │ │ │ on disk don’t match the migrations in the database. A warning doesn’t │ │ │ │ │ @@ -155,15 +155,15 @@ │ │ │ │ │ executing the command. The value '__all__' can be used to specify that │ │ │ │ │ all system checks should be performed. Default value is '__all__'. │ │ │ │ │ BaseCommand.style_¶ │ │ │ │ │ An instance attribute that helps create colored output when writing to │ │ │ │ │ stdout or stderr. For example: │ │ │ │ │ self.stdout.write(self.style.SUCCESS("...")) │ │ │ │ │ See _S_y_n_t_a_x_ _c_o_l_o_r_i_n_g to learn how to modify the color palette and to see │ │ │ │ │ - the available styles (use uppercased versions of the “roles” described in │ │ │ │ │ + the available styles (use uppercased versions of the «roles» described in │ │ │ │ │ that section). │ │ │ │ │ If you pass the _-_-_n_o_-_c_o_l_o_r option when running your command, all │ │ │ │ │ self.style() calls will return the original string uncolored. │ │ │ │ │ BaseCommand.suppressed_base_arguments_¶ │ │ │ │ │ The default command options to suppress in the help output. This should │ │ │ │ │ be a set of option names (e.g. '--verbosity'). The default values for the │ │ │ │ │ suppressed options are still passed. │ │ │ │ │ @@ -173,42 +173,42 @@ │ │ │ │ │ Implementing a constructor in a subclass │ │ │ │ │ If you implement __init__ in your subclass of _B_a_s_e_C_o_m_m_a_n_d, you must call │ │ │ │ │ _B_a_s_e_C_o_m_m_a_n_d’s __init__: │ │ │ │ │ class Command(BaseCommand): │ │ │ │ │ def __init__(self, *args, **kwargs): │ │ │ │ │ super().__init__(*args, **kwargs) │ │ │ │ │ # ... │ │ │ │ │ - BaseCommand.create_parser(pprroogg__nnaammee, ssuubbccoommmmaanndd, ****kkwwaarrggss)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + BaseCommand.create_parser(pprroogg__nnaammee, ssuubbccoommmmaanndd, ****kkwwaarrggss)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Returns a CommandParser instance, which is an _A_r_g_u_m_e_n_t_P_a_r_s_e_r subclass │ │ │ │ │ with a few customizations for Django. │ │ │ │ │ You can customize the instance by overriding this method and calling │ │ │ │ │ super() with kwargs of _A_r_g_u_m_e_n_t_P_a_r_s_e_r parameters. │ │ │ │ │ - BaseCommand.add_arguments(ppaarrsseerr)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + BaseCommand.add_arguments(ppaarrsseerr)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Entry point to add parser arguments to handle command line arguments │ │ │ │ │ passed to the command. Custom commands should override this method to add │ │ │ │ │ both positional and optional arguments accepted by the command. Calling │ │ │ │ │ super() is not needed when directly subclassing BaseCommand. │ │ │ │ │ - BaseCommand.get_version()_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + BaseCommand.get_version()_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Returns the Django version, which should be correct for all built-in │ │ │ │ │ Django commands. User-supplied commands can override this method to │ │ │ │ │ return their own version. │ │ │ │ │ - BaseCommand.execute(**aarrggss, ****ooppttiioonnss)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + BaseCommand.execute(**aarrggss, ****ooppttiioonnss)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Tries to execute this command, performing system checks if needed (as │ │ │ │ │ controlled by the _r_e_q_u_i_r_e_s___s_y_s_t_e_m___c_h_e_c_k_s attribute). If the command │ │ │ │ │ raises a _C_o_m_m_a_n_d_E_r_r_o_r, it’s intercepted and printed to stderr. │ │ │ │ │ Calling a management command in your code │ │ │ │ │ execute() should not be called directly from your code to execute a command. │ │ │ │ │ Use _c_a_l_l___c_o_m_m_a_n_d_(_) instead. │ │ │ │ │ - BaseCommand.handle(**aarrggss, ****ooppttiioonnss)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + BaseCommand.handle(**aarrggss, ****ooppttiioonnss)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ The actual logic of the command. Subclasses must implement this method. │ │ │ │ │ It may return a string which will be printed to stdout (wrapped by BEGIN; │ │ │ │ │ and COMMIT; if _o_u_t_p_u_t___t_r_a_n_s_a_c_t_i_o_n is True). │ │ │ │ │ BaseCommand.check(aapppp__ccoonnffiiggss==NNoonnee, ttaaggss==NNoonnee, ddiissppllaayy__nnuumm__eerrrroorrss==FFaallssee, │ │ │ │ │ iinncclluuddee__ddeeppllooyymmeenntt__cchheecckkss==FFaallssee, ffaaiill__lleevveell==cchheecckkss..EERRRROORR, ddaattaabbaasseess==NNoonnee) │ │ │ │ │ - _[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + _[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Uses the system check framework to inspect the entire Django project for │ │ │ │ │ potential problems. Serious problems are raised as a _C_o_m_m_a_n_d_E_r_r_o_r; │ │ │ │ │ warnings are output to stderr; minor notifications are output to stdout. │ │ │ │ │ If app_configs and tags are both None, all system checks are performed │ │ │ │ │ except deployment and database related checks. tags can be a list of │ │ │ │ │ check tags, like compatibility or models. │ │ │ │ │ You can pass include_deployment_checks=True to also perform deployment │ │ │ │ │ @@ -232,15 +232,15 @@ │ │ │ │ │ A string describing the arbitrary arguments passed to the command. The │ │ │ │ │ string is used in the usage text and error messages of the command. │ │ │ │ │ Defaults to 'label'. │ │ │ │ │ LabelCommand.handle_label(llaabbeell, ****ooppttiioonnss)_¶ │ │ │ │ │ Perform the command’s actions for label, which will be the string as │ │ │ │ │ given on the command line. │ │ │ │ │ ******** CCoommmmaanndd eexxcceeppttiioonnss_?¶ ******** │ │ │ │ │ - eexxcceeppttiioonn CommandError(rreettuurrnnccooddee==11)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + eexxcceeppttiioonn CommandError(rreettuurrnnccooddee==11)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Exception class indicating a problem while executing a management command. │ │ │ │ │ If this exception is raised during the execution of a management command from a │ │ │ │ │ command line console, it will be caught and turned into a nicely-printed error │ │ │ │ │ message to the appropriate output stream (i.e., stderr); as a result, raising │ │ │ │ │ this exception (with a sensible description of the error) is the preferred way │ │ │ │ │ to indicate that something has gone wrong in the execution of a command. It │ │ │ │ │ accepts the optional returncode argument to customize the exit status for the │ │ │ │ │ @@ -254,16 +254,16 @@ │ │ │ │ │ o _T_e_s_t_i_n_g │ │ │ │ │ o _O_v_e_r_r_i_d_i_n_g_ _c_o_m_m_a_n_d_s │ │ │ │ │ o _C_o_m_m_a_n_d_ _o_b_j_e_c_t_s │ │ │ │ │ # _A_t_t_r_i_b_u_t_e_s │ │ │ │ │ # _M_e_t_h_o_d_s │ │ │ │ │ # _B_a_s_e_C_o_m_m_a_n_d_ _s_u_b_c_l_a_s_s_e_s │ │ │ │ │ # _C_o_m_m_a_n_d_ _e_x_c_e_p_t_i_o_n_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_’_s_ _C_S_R_F_ _p_r_o_t_e_c_t_i_o_n │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_r_e_a_t_e_ _c_u_s_t_o_m_ _m_o_d_e_l_ _f_i_e_l_d_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/custom-model-fields.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to create custom model fields — Django 5.1b1 documentation │ │ │ │ + How to create custom model fields — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -130,15 +131,15 @@ │ │ │ │

    We assign to and retrieve from the hand attribute in our model just like │ │ │ │ any other Python class. The trick is to tell Django how to handle saving and │ │ │ │ loading such an object.

    │ │ │ │

    In order to use the Hand class in our models, we do not have to change │ │ │ │ this class at all. This is ideal, because it means you can easily write │ │ │ │ model support for existing classes where you cannot change the source code.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    You might only be wanting to take advantage of custom database column │ │ │ │ types and deal with the data as standard Python types in your models; │ │ │ │ strings, or floats, for example. This case is similar to our Hand │ │ │ │ example and we’ll note any differences as we go along.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -227,15 +228,15 @@ │ │ │ │ super().__init__(*args, **kwargs) │ │ │ │
    │ │ │ │
    │ │ │ │

    Our HandField accepts most of the standard field options (see the list │ │ │ │ below), but we ensure it has a fixed length, since it only needs to hold 52 │ │ │ │ card values plus their suits; 104 characters in total.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Many of Django’s model fields accept options that they don’t do anything │ │ │ │ with. For example, you can pass both │ │ │ │ editable and │ │ │ │ auto_now to a │ │ │ │ django.db.models.DateField and it will ignore the │ │ │ │ editable parameter │ │ │ │ (auto_now being set implies │ │ │ │ @@ -399,15 +400,15 @@ │ │ │ │

    Documenting your custom field

    │ │ │ │

    As always, you should document your field type, so users will know what it is. │ │ │ │ In addition to providing a docstring for it, which is useful for developers, │ │ │ │ you can also allow users of the admin app to see a short description of the │ │ │ │ field type via the django.contrib.admindocs application. To do this provide descriptive │ │ │ │ text in a description class attribute of your custom field. In │ │ │ │ the above example, the description displayed by the admindocs application │ │ │ │ -for a HandField will be ‘A hand of cards (bridge style)’.

    │ │ │ │ +for a HandField will be “A hand of cards (bridge style)”.

    │ │ │ │

    In the django.contrib.admindocs display, the field description is │ │ │ │ interpolated with field.__dict__ which allows the description to │ │ │ │ incorporate arguments of the field. For example, the description for │ │ │ │ CharField is:

    │ │ │ │
    description = _("String (up to %(max_length)s)")
    │ │ │ │  
    │ │ │ │
    │ │ │ │ @@ -586,15 +587,15 @@ │ │ │ │ def get_prep_value(self, value): │ │ │ │ return "".join( │ │ │ │ ["".join(l) for l in (value.north, value.east, value.south, value.west)] │ │ │ │ ) │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    If your custom field uses the CHAR, VARCHAR or TEXT │ │ │ │ types for MySQL, you must make sure that get_prep_value() │ │ │ │ always returns a string type. MySQL performs flexible and unexpected │ │ │ │ matching when a query is performed on these types and the provided │ │ │ │ value is an integer, which can cause queries to include unexpected │ │ │ │ objects in their results. This problem cannot occur if you always │ │ │ │ return a string type from get_prep_value().

    │ │ │ │ @@ -810,47 +811,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to create custom django-admin commands

    │ │ │ │ + title="capitolo precedente">How to create custom django-admin commands

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to write custom lookups

    │ │ │ │ + title="capitolo successivo">How to write custom lookups

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ccrreeaattee ccuussttoomm mmooddeell ffiieellddss_?¶ ************ │ │ │ │ │ ********** IInnttrroodduuccttiioonn_?¶ ********** │ │ │ │ │ The _m_o_d_e_l_ _r_e_f_e_r_e_n_c_e documentation explains how to use Django’s standard field │ │ │ │ │ classes – _C_h_a_r_F_i_e_l_d, _D_a_t_e_F_i_e_l_d, etc. For many purposes, those classes are all │ │ │ │ │ you’ll need. Sometimes, though, the Django version won’t meet your precise │ │ │ │ │ @@ -45,15 +45,15 @@ │ │ │ │ │ example.save() │ │ │ │ │ We assign to and retrieve from the hand attribute in our model just like any │ │ │ │ │ other Python class. The trick is to tell Django how to handle saving and │ │ │ │ │ loading such an object. │ │ │ │ │ In order to use the Hand class in our models, we ddoo nnoott have to change this │ │ │ │ │ class at all. This is ideal, because it means you can easily write model │ │ │ │ │ support for existing classes where you cannot change the source code. │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ You might only be wanting to take advantage of custom database column types and │ │ │ │ │ deal with the data as standard Python types in your models; strings, or floats, │ │ │ │ │ for example. This case is similar to our Hand example and we’ll note any │ │ │ │ │ differences as we go along. │ │ │ │ │ ********** BBaacckkggrroouunndd tthheeoorryy_?¶ ********** │ │ │ │ │ ******** DDaattaabbaassee ssttoorraaggee_?¶ ******** │ │ │ │ │ Let’s start with model fields. If you break it down, a model field provides a │ │ │ │ │ @@ -122,15 +122,15 @@ │ │ │ │ │ │ │ │ │ │ def __init__(self, *args, **kwargs): │ │ │ │ │ kwargs["max_length"] = 104 │ │ │ │ │ super().__init__(*args, **kwargs) │ │ │ │ │ Our HandField accepts most of the standard field options (see the list below), │ │ │ │ │ but we ensure it has a fixed length, since it only needs to hold 52 card values │ │ │ │ │ plus their suits; 104 characters in total. │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ Many of Django’s model fields accept options that they don’t do anything with. │ │ │ │ │ For example, you can pass both _e_d_i_t_a_b_l_e and _a_u_t_o___n_o_w to a │ │ │ │ │ _d_j_a_n_g_o_._d_b_._m_o_d_e_l_s_._D_a_t_e_F_i_e_l_d and it will ignore the _e_d_i_t_a_b_l_e parameter (_a_u_t_o___n_o_w │ │ │ │ │ being set implies editable=False). No error is raised in this case. │ │ │ │ │ This behavior simplifies the field classes, because they don’t need to check │ │ │ │ │ for options that aren’t necessary. They pass all the options to the parent │ │ │ │ │ class and then don’t use them later on. It’s up to you whether you want your │ │ │ │ │ @@ -261,15 +261,15 @@ │ │ │ │ │ ******** DDooccuummeennttiinngg yyoouurr ccuussttoomm ffiieelldd_?¶ ******** │ │ │ │ │ As always, you should document your field type, so users will know what it is. │ │ │ │ │ In addition to providing a docstring for it, which is useful for developers, │ │ │ │ │ you can also allow users of the admin app to see a short description of the │ │ │ │ │ field type via the _d_j_a_n_g_o_._c_o_n_t_r_i_b_._a_d_m_i_n_d_o_c_s application. To do this provide │ │ │ │ │ descriptive text in a _d_e_s_c_r_i_p_t_i_o_n class attribute of your custom field. In the │ │ │ │ │ above example, the description displayed by the admindocs application for a │ │ │ │ │ -HandField will be ‘A hand of cards (bridge style)’. │ │ │ │ │ +HandField will be “A hand of cards (bridge style)”. │ │ │ │ │ In the _d_j_a_n_g_o_._c_o_n_t_r_i_b_._a_d_m_i_n_d_o_c_s display, the field description is interpolated │ │ │ │ │ with field.__dict__ which allows the description to incorporate arguments of │ │ │ │ │ the field. For example, the description for _C_h_a_r_F_i_e_l_d is: │ │ │ │ │ description = _("String (up to %(max_length)s)") │ │ │ │ │ ******** UUsseeffuull mmeetthhooddss_?¶ ******** │ │ │ │ │ Once you’ve created your _F_i_e_l_d subclass, you might consider overriding a few │ │ │ │ │ standard methods, depending on your field’s behavior. The list of methods below │ │ │ │ │ @@ -417,15 +417,15 @@ │ │ │ │ │ # ... │ │ │ │ │ │ │ │ │ │ def get_prep_value(self, value): │ │ │ │ │ return "".join( │ │ │ │ │ ["".join(l) for l in (value.north, value.east, value.south, │ │ │ │ │ value.west)] │ │ │ │ │ ) │ │ │ │ │ -Warning │ │ │ │ │ +Avvertimento │ │ │ │ │ If your custom field uses the CHAR, VARCHAR or TEXT types for MySQL, you must │ │ │ │ │ make sure that _g_e_t___p_r_e_p___v_a_l_u_e_(_) always returns a string type. MySQL performs │ │ │ │ │ flexible and unexpected matching when a query is performed on these types and │ │ │ │ │ the provided value is an integer, which can cause queries to include unexpected │ │ │ │ │ objects in their results. This problem cannot occur if you always return a │ │ │ │ │ string type from _g_e_t___p_r_e_p___v_a_l_u_e_(_). │ │ │ │ │ ****** CCoonnvveerrttiinngg qquueerryy vvaalluueess ttoo ddaattaabbaassee vvaalluueess_?¶ ****** │ │ │ │ │ @@ -569,16 +569,16 @@ │ │ │ │ │ # _P_r_e_p_r_o_c_e_s_s_i_n_g_ _v_a_l_u_e_s_ _b_e_f_o_r_e_ _s_a_v_i_n_g │ │ │ │ │ # _S_p_e_c_i_f_y_i_n_g_ _t_h_e_ _f_o_r_m_ _f_i_e_l_d_ _f_o_r_ _a_ _m_o_d_e_l_ _f_i_e_l_d │ │ │ │ │ # _E_m_u_l_a_t_i_n_g_ _b_u_i_l_t_-_i_n_ _f_i_e_l_d_ _t_y_p_e_s │ │ │ │ │ # _C_o_n_v_e_r_t_i_n_g_ _f_i_e_l_d_ _d_a_t_a_ _f_o_r_ _s_e_r_i_a_l_i_z_a_t_i_o_n │ │ │ │ │ # _S_o_m_e_ _g_e_n_e_r_a_l_ _a_d_v_i_c_e │ │ │ │ │ o _W_r_i_t_i_n_g_ _a_ _F_i_l_e_F_i_e_l_d_ _s_u_b_c_l_a_s_s │ │ │ │ │ # _A_ _f_e_w_ _s_u_g_g_e_s_t_i_o_n_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_r_e_a_t_e_ _c_u_s_t_o_m_ _d_j_a_n_g_o_-_a_d_m_i_n_ _c_o_m_m_a_n_d_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _w_r_i_t_e_ _c_u_s_t_o_m_ _l_o_o_k_u_p_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/custom-template-backend.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to implement a custom template backend — Django 5.1b1 documentation │ │ │ │ + How to implement a custom template backend — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -243,47 +244,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to write custom lookups

    │ │ │ │ + title="capitolo precedente">How to write custom lookups

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to create custom template tags and filters

    │ │ │ │ + title="capitolo successivo">How to create custom template tags and filters

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo iimmpplleemmeenntt aa ccuussttoomm tteemmppllaattee bbaacckkeenndd_?¶ ************ │ │ │ │ │ ********** CCuussttoomm bbaacckkeennddss_?¶ ********** │ │ │ │ │ Here’s how to implement a custom template backend in order to use another │ │ │ │ │ template system. A template backend is a class that inherits │ │ │ │ │ django.template.backends.base.BaseEngine. It must implement get_template() and │ │ │ │ │ @@ -125,16 +125,16 @@ │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _i_m_p_l_e_m_e_n_t_ _a_ _c_u_s_t_o_m_ _t_e_m_p_l_a_t_e_ _b_a_c_k_e_n_d │ │ │ │ │ o _C_u_s_t_o_m_ _b_a_c_k_e_n_d_s │ │ │ │ │ o _D_e_b_u_g_ _i_n_t_e_g_r_a_t_i_o_n_ _f_o_r_ _c_u_s_t_o_m_ _e_n_g_i_n_e_s │ │ │ │ │ # _T_e_m_p_l_a_t_e_ _p_o_s_t_m_o_r_t_e_m │ │ │ │ │ # _C_o_n_t_e_x_t_u_a_l_ _l_i_n_e_ _i_n_f_o_r_m_a_t_i_o_n │ │ │ │ │ # _O_r_i_g_i_n_ _A_P_I_ _a_n_d_ _3_r_d_-_p_a_r_t_y_ _i_n_t_e_g_r_a_t_i_o_n │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _w_r_i_t_e_ _c_u_s_t_o_m_ _l_o_o_k_u_p_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_r_e_a_t_e_ _c_u_s_t_o_m_ _t_e_m_p_l_a_t_e_ _t_a_g_s_ _a_n_d_ _f_i_l_t_e_r_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/custom-template-tags.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to create custom template tags and filters — Django 5.1b1 documentation │ │ │ │ + How to create custom template tags and filters — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -279,19 +280,19 @@ │ │ │ │ handling for you. All you need to do is set the is_safe flag to True │ │ │ │ when you register your filter function, like so:

    │ │ │ │
    @register.filter(is_safe=True)
    │ │ │ │  def myfilter(value):
    │ │ │ │      return value
    │ │ │ │  
    │ │ │ │
    │ │ │ │ -

    This flag tells Django that if a “safe” string is passed into your │ │ │ │ -filter, the result will still be “safe” and if a non-safe string is │ │ │ │ +

    This flag tells Django that if a «safe» string is passed into your │ │ │ │ +filter, the result will still be «safe» and if a non-safe string is │ │ │ │ passed in, Django will automatically escape it, if necessary.

    │ │ │ │ -

    You can think of this as meaning “this filter is safe – it doesn’t │ │ │ │ -introduce any possibility of unsafe HTML.”

    │ │ │ │ +

    You can think of this as meaning «this filter is safe – it doesn’t │ │ │ │ +introduce any possibility of unsafe HTML.»

    │ │ │ │

    The reason is_safe is necessary is because there are plenty of │ │ │ │ normal string operations that will turn a SafeData object back into │ │ │ │ a normal str object and, rather than try to catch them all, which would │ │ │ │ be very difficult, Django repairs the damage after the filter has completed.

    │ │ │ │

    For example, suppose you have a filter that adds the string xx to │ │ │ │ the end of any input. Since this introduces no dangerous HTML characters │ │ │ │ to the result (aside from any that were already present), you should │ │ │ │ @@ -299,15 +300,15 @@ │ │ │ │

    @register.filter(is_safe=True)
    │ │ │ │  def add_xx(value):
    │ │ │ │      return "%sxx" % value
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    When this filter is used in a template where auto-escaping is enabled, │ │ │ │ Django will escape the output whenever the input is not already marked │ │ │ │ -as “safe”.

    │ │ │ │ +as «safe».

    │ │ │ │

    By default, is_safe is False, and you can omit it from any filters │ │ │ │ where it isn’t required.

    │ │ │ │

    Be careful when deciding if your filter really does leave safe strings │ │ │ │ as safe. If you’re removing characters, you might inadvertently leave │ │ │ │ unbalanced HTML tags or entities in the result. For example, removing a │ │ │ │ > from the input might turn <a> into <a, which would need to │ │ │ │ be escaped on output to avoid causing problems. Similarly, removing a │ │ │ │ @@ -315,15 +316,15 @@ │ │ │ │ valid entity and thus needs further escaping. Most cases won’t be nearly │ │ │ │ this tricky, but keep an eye out for any problems like that when │ │ │ │ reviewing your code.

    │ │ │ │

    Marking a filter is_safe will coerce the filter’s return value to │ │ │ │ a string. If your filter should return a boolean or other non-string │ │ │ │ value, marking it is_safe will probably have unintended │ │ │ │ consequences (such as converting a boolean False to the string │ │ │ │ -‘False’).

    │ │ │ │ +“False”).

    │ │ │ │ │ │ │ │
  • Alternatively, your filter code can manually take care of any necessary │ │ │ │ escaping. This is necessary when you’re introducing new HTML markup into │ │ │ │ the result. You want to mark the output as safe from further │ │ │ │ escaping so that your HTML markup isn’t escaped further, so you’ll need │ │ │ │ to handle the input yourself.

    │ │ │ │

    To mark the output as a safe string, use │ │ │ │ @@ -361,30 +362,30 @@ │ │ │ │ return mark_safe(result) │ │ │ │

  • │ │ │ │
    │ │ │ │

    The needs_autoescape flag and the autoescape keyword argument mean │ │ │ │ that our function will know whether automatic escaping is in effect when the │ │ │ │ filter is called. We use autoescape to decide whether the input data │ │ │ │ needs to be passed through django.utils.html.conditional_escape or not. │ │ │ │ -(In the latter case, we use the identity function as the “escape” function.) │ │ │ │ +(In the latter case, we use the identity function as the «escape» function.) │ │ │ │ The conditional_escape() function is like escape() except it only │ │ │ │ escapes input that is not a SafeData instance. If a SafeData │ │ │ │ instance is passed to conditional_escape(), the data is returned │ │ │ │ unchanged.

    │ │ │ │

    Finally, in the above example, we remember to mark the result as safe │ │ │ │ so that our HTML is inserted directly into the template without further │ │ │ │ escaping.

    │ │ │ │

    There’s no need to worry about the is_safe flag in this case │ │ │ │ (although including it wouldn’t hurt anything). Whenever you manually │ │ │ │ handle the auto-escaping issues and return a safe string, the │ │ │ │ is_safe flag won’t change anything either way.

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Avoiding XSS vulnerabilities when reusing built-in filters

    │ │ │ │

    Django’s built-in filters have autoescape=True by default in order to │ │ │ │ get the proper autoescaping behavior and avoid a cross-site script │ │ │ │ vulnerability.

    │ │ │ │

    In older versions of Django, be careful when reusing Django’s built-in │ │ │ │ filters as autoescape defaults to None. You’ll need to pass │ │ │ │ autoescape=True to get autoescaping.

    │ │ │ │ @@ -509,15 +510,15 @@ │ │ │ │ profile = kwargs["profile"] │ │ │ │ ... │ │ │ │ return ... │ │ │ │
    │ │ │ │
    │ │ │ │

    Then in the template any number of arguments, separated by spaces, may be │ │ │ │ passed to the template tag. Like in Python, the values for keyword arguments │ │ │ │ -are set using the equal sign (”=”) and must be provided after the │ │ │ │ +are set using the equal sign (»=») and must be provided after the │ │ │ │ positional arguments. For example:

    │ │ │ │
    {% my_tag 123 "abcd" book.title warning=message|lower profile=user.profile %}
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    It’s possible to store the tag results in a template variable rather than │ │ │ │ directly outputting it. This is done by using the as argument followed by │ │ │ │ the variable name. Doing so enables you to output the content yourself where │ │ │ │ @@ -532,20 +533,20 @@ │ │ │ │

    │ │ │ │
    │ │ │ │ django.template.Library.inclusion_tag()
    │ │ │ │
    │ │ │ │ │ │ │ │

    Another common type of template tag is the type that displays some data by │ │ │ │ rendering another template. For example, Django’s admin interface uses custom │ │ │ │ -template tags to display the buttons along the bottom of the “add/change” form │ │ │ │ +template tags to display the buttons along the bottom of the «add/change» form │ │ │ │ pages. Those buttons always look the same, but the link targets change │ │ │ │ depending on the object being edited – so they’re a perfect case for using a │ │ │ │ small template that is filled with details from the current object. (In the │ │ │ │ admin’s case, this is the submit_row tag.)

    │ │ │ │ -

    These sorts of tags are called “inclusion tags”.

    │ │ │ │ +

    These sorts of tags are called «inclusion tags».

    │ │ │ │

    Writing inclusion tags is probably best demonstrated by example. Let’s write a │ │ │ │ tag that outputs a list of choices for a given Poll object, such as was │ │ │ │ created in the tutorials. We’ll use the tag like this:

    │ │ │ │
    {% show_results poll %}
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    …and the output will be something like this:

    │ │ │ │ @@ -635,15 +636,15 @@ │ │ │ │ profile = kwargs["profile"] │ │ │ │ ... │ │ │ │ return ... │ │ │ │
    │ │ │ │
    │ │ │ │

    Then in the template any number of arguments, separated by spaces, may be │ │ │ │ passed to the template tag. Like in Python, the values for keyword arguments │ │ │ │ -are set using the equal sign (”=”) and must be provided after the │ │ │ │ +are set using the equal sign (»=») and must be provided after the │ │ │ │ positional arguments. For example:

    │ │ │ │
    {% my_tag 123 "abcd" book.title warning=message|lower profile=user.profile %}
    │ │ │ │  
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Advanced custom template tags

    │ │ │ │ @@ -653,15 +654,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │

    A quick overview

    │ │ │ │

    The template system works in a two-step process: compiling and rendering. To │ │ │ │ define a custom template tag, you specify how the compilation works and how │ │ │ │ the rendering works.

    │ │ │ │

    When Django compiles a template, it splits the raw template text into │ │ │ │ -‘’nodes’’. Each node is an instance of django.template.Node and has │ │ │ │ +“”nodes””. Each node is an instance of django.template.Node and has │ │ │ │ a render() method. A compiled template is a list of Node objects. When │ │ │ │ you call render() on a compiled template object, the template calls │ │ │ │ render() on each Node in its node list, with the given context. The │ │ │ │ results are all concatenated together to form the output of the template.

    │ │ │ │

    Thus, to define a custom template tag, you specify how the raw template tag is │ │ │ │ converted into a Node (the compilation function), and what the node’s │ │ │ │ render() method does.

    │ │ │ │ @@ -712,15 +713,15 @@ │ │ │ │ idea to always use token.split_contents().

    │ │ │ │
  • This function is responsible for raising │ │ │ │ django.template.TemplateSyntaxError, with helpful messages, for │ │ │ │ any syntax error.

  • │ │ │ │
  • The TemplateSyntaxError exceptions use the tag_name variable. │ │ │ │ Don’t hard-code the tag’s name in your error messages, because that │ │ │ │ couples the tag’s name to your function. token.contents.split()[0] │ │ │ │ -will ‘’always’’ be the name of your tag – even when the tag has no │ │ │ │ +will “”always”” be the name of your tag – even when the tag has no │ │ │ │ arguments.

  • │ │ │ │
  • The function returns a CurrentTimeNode with everything the node needs │ │ │ │ to know about this tag. In this case, it passes the argument – │ │ │ │ "%Y-%m-%d %I:%M %p". The leading and trailing quotes from the │ │ │ │ template tag are removed in format_string[1:-1].

  • │ │ │ │
  • The parsing is very low-level. The Django developers have experimented │ │ │ │ with writing small frameworks on top of this parsing system, using │ │ │ │ @@ -831,21 +832,21 @@ │ │ │ │ return next(self.cycle_iter) │ │ │ │ │ │ │ │ │ │ │ │

    But, suppose we have two templates rendering the template snippet from above at │ │ │ │ the same time:

    │ │ │ │
      │ │ │ │
    1. Thread 1 performs its first loop iteration, CycleNode.render() │ │ │ │ -returns ‘row1’

    2. │ │ │ │ +returns “row1”

      │ │ │ │
    3. Thread 2 performs its first loop iteration, CycleNode.render() │ │ │ │ -returns ‘row2’

    4. │ │ │ │ +returns “row2”

      │ │ │ │
    5. Thread 1 performs its second loop iteration, CycleNode.render() │ │ │ │ -returns ‘row1’

    6. │ │ │ │ +returns “row1”

      │ │ │ │
    7. Thread 2 performs its second loop iteration, CycleNode.render() │ │ │ │ -returns ‘row2’

    8. │ │ │ │ +returns “row2”

      │ │ │ │
    │ │ │ │

    The CycleNode is iterating, but it’s iterating globally. As far as Thread 1 │ │ │ │ and Thread 2 are concerned, it’s always returning the same value. This is │ │ │ │ not what we want!

    │ │ │ │

    To address this problem, Django provides a render_context that’s associated │ │ │ │ with the context of the template that is currently being rendered. The │ │ │ │ render_context behaves like a Python dictionary, and should be used to │ │ │ │ @@ -866,15 +867,15 @@ │ │ │ │ throughout the life of the Node as an attribute. In the case of │ │ │ │ CycleNode, the cyclevars argument doesn’t change after the Node is │ │ │ │ instantiated, so we don’t need to put it in the render_context. But state │ │ │ │ information that is specific to the template that is currently being rendered, │ │ │ │ like the current iteration of the CycleNode, should be stored in the │ │ │ │ render_context.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Notice how we used self to scope the CycleNode specific information │ │ │ │ within the render_context. There may be multiple CycleNodes in a │ │ │ │ given template, so we need to be careful not to clobber another node’s │ │ │ │ state information. The easiest way to do this is to always use self as │ │ │ │ the key into render_context. If you’re keeping track of several state │ │ │ │ variables, make render_context[self] a dictionary.

    │ │ │ │
    │ │ │ │ @@ -1071,31 +1072,31 @@ │ │ │ │ │ │ │ │ class CommentNode(template.Node): │ │ │ │ def render(self, context): │ │ │ │ return "" │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The actual implementation of {% comment %} is slightly │ │ │ │ different in that it allows broken template tags to appear between │ │ │ │ {% comment %} and {% endcomment %}. It does so by calling │ │ │ │ parser.skip_past('endcomment') instead of parser.parse(('endcomment',)) │ │ │ │ followed by parser.delete_first_token(), thus avoiding the generation of a │ │ │ │ node list.

    │ │ │ │
    │ │ │ │ -

    parser.parse() takes a tuple of names of block tags ‘’to parse until’’. It │ │ │ │ +

    parser.parse() takes a tuple of names of block tags “”to parse until””. It │ │ │ │ returns an instance of django.template.NodeList, which is a list of │ │ │ │ -all Node objects that the parser encountered ‘’before’’ it encountered │ │ │ │ +all Node objects that the parser encountered “”before”” it encountered │ │ │ │ any of the tags named in the tuple.

    │ │ │ │

    In "nodelist = parser.parse(('endcomment',))" in the above example, │ │ │ │ nodelist is a list of all nodes between the {% comment %} and │ │ │ │ {% endcomment %}, not counting {% comment %} and {% endcomment %} │ │ │ │ themselves.

    │ │ │ │ -

    After parser.parse() is called, the parser hasn’t yet “consumed” the │ │ │ │ +

    After parser.parse() is called, the parser hasn’t yet «consumed» the │ │ │ │ {% endcomment %} tag, so the code needs to explicitly call │ │ │ │ parser.delete_first_token().

    │ │ │ │

    CommentNode.render() returns an empty string. Anything between │ │ │ │ {% comment %} and {% endcomment %} is ignored.

    │ │ │ │
  • │ │ │ │
    │ │ │ │

    Parsing until another block tag, and saving contents

    │ │ │ │ @@ -1174,47 +1175,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to implement a custom template backend

    │ │ │ │ + title="capitolo precedente">How to implement a custom template backend

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to write a custom storage class

    │ │ │ │ + title="capitolo successivo">How to write a custom storage class

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ccrreeaattee ccuussttoomm tteemmppllaattee ttaaggss aanndd ffiilltteerrss_?¶ ************ │ │ │ │ │ Django’s template language comes with a wide variety of _b_u_i_l_t_-_i_n_ _t_a_g_s_ _a_n_d │ │ │ │ │ _f_i_l_t_e_r_s designed to address the presentation logic needs of your application. │ │ │ │ │ Nevertheless, you may find yourself needing functionality that is not covered │ │ │ │ │ by the core set of template primitives. You can extend the template engine by │ │ │ │ │ @@ -145,47 +145,47 @@ │ │ │ │ │ &) into the result that were not already present. In this case, you can │ │ │ │ │ let Django take care of all the auto-escaping handling for you. All you │ │ │ │ │ need to do is set the is_safe flag to True when you register your filter │ │ │ │ │ function, like so: │ │ │ │ │ @register.filter(is_safe=True) │ │ │ │ │ def myfilter(value): │ │ │ │ │ return value │ │ │ │ │ - This flag tells Django that if a “safe” string is passed into your │ │ │ │ │ - filter, the result will still be “safe” and if a non-safe string is │ │ │ │ │ + This flag tells Django that if a «safe» string is passed into your │ │ │ │ │ + filter, the result will still be «safe» and if a non-safe string is │ │ │ │ │ passed in, Django will automatically escape it, if necessary. │ │ │ │ │ - You can think of this as meaning “this filter is safe – it doesn’t │ │ │ │ │ - introduce any possibility of unsafe HTML.” │ │ │ │ │ + You can think of this as meaning «this filter is safe – it doesn’t │ │ │ │ │ + introduce any possibility of unsafe HTML.» │ │ │ │ │ The reason is_safe is necessary is because there are plenty of normal │ │ │ │ │ string operations that will turn a SafeData object back into a normal str │ │ │ │ │ object and, rather than try to catch them all, which would be very │ │ │ │ │ difficult, Django repairs the damage after the filter has completed. │ │ │ │ │ For example, suppose you have a filter that adds the string xx to the end │ │ │ │ │ of any input. Since this introduces no dangerous HTML characters to the │ │ │ │ │ result (aside from any that were already present), you should mark your │ │ │ │ │ filter with is_safe: │ │ │ │ │ @register.filter(is_safe=True) │ │ │ │ │ def add_xx(value): │ │ │ │ │ return "%sxx" % value │ │ │ │ │ When this filter is used in a template where auto-escaping is enabled, │ │ │ │ │ Django will escape the output whenever the input is not already marked as │ │ │ │ │ - “safe”. │ │ │ │ │ + «safe». │ │ │ │ │ By default, is_safe is False, and you can omit it from any filters where │ │ │ │ │ it isn’t required. │ │ │ │ │ Be careful when deciding if your filter really does leave safe strings as │ │ │ │ │ safe. If you’re rreemmoovviinngg characters, you might inadvertently leave │ │ │ │ │ unbalanced HTML tags or entities in the result. For example, removing a > │ │ │ │ │ from the input might turn into The time is {{ the_time }}.

    │ │ │ │ │ ******** IInncclluussiioonn ttaaggss_?¶ ******** │ │ │ │ │ django.template.Library.inclusion_tag()_¶ │ │ │ │ │ Another common type of template tag is the type that displays some data by │ │ │ │ │ rendering aannootthheerr template. For example, Django’s admin interface uses custom │ │ │ │ │ -template tags to display the buttons along the bottom of the “add/change” form │ │ │ │ │ +template tags to display the buttons along the bottom of the «add/change» form │ │ │ │ │ pages. Those buttons always look the same, but the link targets change │ │ │ │ │ depending on the object being edited – so they’re a perfect case for using a │ │ │ │ │ small template that is filled with details from the current object. (In the │ │ │ │ │ admin’s case, this is the submit_row tag.) │ │ │ │ │ -These sorts of tags are called “inclusion tags”. │ │ │ │ │ +These sorts of tags are called «inclusion tags». │ │ │ │ │ Writing inclusion tags is probably best demonstrated by example. Let’s write a │ │ │ │ │ tag that outputs a list of choices for a given Poll object, such as was created │ │ │ │ │ in the _t_u_t_o_r_i_a_l_s. We’ll use the tag like this: │ │ │ │ │ {% show_results poll %} │ │ │ │ │ …and the output will be something like this: │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to deploy with ASGI

    │ │ │ │ + title="capitolo precedente">How to deploy with ASGI

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to use Django with Hypercorn

    │ │ │ │ + title="capitolo successivo">How to use Django with Hypercorn

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo uussee DDjjaannggoo wwiitthh DDaapphhnnee_?¶ ************ │ │ │ │ │ _D_a_p_h_n_e is a pure-Python ASGI server for UNIX, maintained by members of the │ │ │ │ │ Django project. It acts as the reference server for ASGI. │ │ │ │ │ ********** IInnssttaalllliinngg DDaapphhnnee_?¶ ********** │ │ │ │ │ You can install Daphne with pip: │ │ │ │ │ @@ -29,16 +29,16 @@ │ │ │ │ │ │ │ │ │ │ ASGI_APPLICATION = "myproject.asgi.application" │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _D_a_p_h_n_e │ │ │ │ │ o _I_n_s_t_a_l_l_i_n_g_ _D_a_p_h_n_e │ │ │ │ │ o _R_u_n_n_i_n_g_ _D_j_a_n_g_o_ _i_n_ _D_a_p_h_n_e │ │ │ │ │ o _I_n_t_e_g_r_a_t_i_o_n_ _w_i_t_h_ _r_u_n_s_e_r_v_e_r │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _d_e_p_l_o_y_ _w_i_t_h_ _A_S_G_I │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _H_y_p_e_r_c_o_r_n │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/hypercorn.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to use Django with Hypercorn — Django 5.1b1 documentation │ │ │ │ + How to use Django with Hypercorn — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -123,47 +124,47 @@ │ │ │ │
  • Running Django in Hypercorn
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to use Django with Daphne

    │ │ │ │ + title="capitolo precedente">How to use Django with Daphne

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to use Django with Uvicorn

    │ │ │ │ + title="capitolo successivo">How to use Django with Uvicorn

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo uussee DDjjaannggoo wwiitthh HHyyppeerrccoorrnn_?¶ ************ │ │ │ │ │ _H_y_p_e_r_c_o_r_n is an ASGI server that supports HTTP/1, HTTP/2, and HTTP/3 with an │ │ │ │ │ emphasis on protocol support. │ │ │ │ │ ********** IInnssttaalllliinngg HHyyppeerrccoorrnn_?¶ ********** │ │ │ │ │ You can install Hypercorn with pip: │ │ │ │ │ @@ -18,16 +18,16 @@ │ │ │ │ │ project be on the Python path; to ensure that run this command from the same │ │ │ │ │ directory as your manage.py file. │ │ │ │ │ For more advanced usage, please read the _H_y_p_e_r_c_o_r_n_ _d_o_c_u_m_e_n_t_a_t_i_o_n. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _H_y_p_e_r_c_o_r_n │ │ │ │ │ o _I_n_s_t_a_l_l_i_n_g_ _H_y_p_e_r_c_o_r_n │ │ │ │ │ o _R_u_n_n_i_n_g_ _D_j_a_n_g_o_ _i_n_ _H_y_p_e_r_c_o_r_n │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _D_a_p_h_n_e │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _U_v_i_c_o_r_n │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/index.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to deploy with ASGI — Django 5.1b1 documentation │ │ │ │ + How to deploy with ASGI — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -101,15 +102,15 @@ │ │ │ │

    The startproject command creates a file │ │ │ │ <project_name>/asgi.py that contains such an application callable.

    │ │ │ │

    It’s not used by the development server (runserver), but can be used by │ │ │ │ any ASGI server either in development or in production.

    │ │ │ │

    ASGI servers usually take the path to the application callable as a string; │ │ │ │ for most Django projects, this will look like myproject.asgi:application.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    While Django’s default ASGI handler will run all your code in a synchronous │ │ │ │ thread, if you choose to run your own async handler you must be aware of │ │ │ │ async-safety.

    │ │ │ │

    Do not call blocking synchronous functions or libraries in any async code. │ │ │ │ Django prevents you from doing this with the parts of Django that are not │ │ │ │ async-safe, but the same may not be true of third-party apps or Python │ │ │ │ libraries.

    │ │ │ │ @@ -157,47 +158,47 @@ │ │ │ │
  • Applying ASGI middleware
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to authenticate against Django’s user database from Apache

    │ │ │ │ + title="capitolo precedente">How to authenticate against Django’s user database from Apache

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to use Django with Daphne

    │ │ │ │ + title="capitolo successivo">How to use Django with Daphne

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ddeeppllooyy wwiitthh AASSGGII_?¶ ************ │ │ │ │ │ As well as WSGI, Django also supports deploying on _A_S_G_I, the emerging Python │ │ │ │ │ standard for asynchronous web servers and applications. │ │ │ │ │ Django’s _s_t_a_r_t_p_r_o_j_e_c_t management command sets up a default ASGI configuration │ │ │ │ │ for you, which you can tweak as needed for your project, and direct any ASGI- │ │ │ │ │ @@ -17,15 +17,15 @@ │ │ │ │ │ named application in a Python module accessible to the server. │ │ │ │ │ The _s_t_a_r_t_p_r_o_j_e_c_t command creates a file /asgi.py that contains │ │ │ │ │ such an application callable. │ │ │ │ │ It’s not used by the development server (runserver), but can be used by any │ │ │ │ │ ASGI server either in development or in production. │ │ │ │ │ ASGI servers usually take the path to the application callable as a string; for │ │ │ │ │ most Django projects, this will look like myproject.asgi:application. │ │ │ │ │ -Warning │ │ │ │ │ +Avvertimento │ │ │ │ │ While Django’s default ASGI handler will run all your code in a synchronous │ │ │ │ │ thread, if you choose to run your own async handler you must be aware of async- │ │ │ │ │ safety. │ │ │ │ │ Do not call blocking synchronous functions or libraries in any async code. │ │ │ │ │ Django prevents you from doing this with the parts of Django that are not │ │ │ │ │ async-safe, but the same may not be true of third-party apps or Python │ │ │ │ │ libraries. │ │ │ │ │ @@ -45,16 +45,16 @@ │ │ │ │ │ │ │ │ │ │ application = AmazingMiddleware(application) │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _d_e_p_l_o_y_ _w_i_t_h_ _A_S_G_I │ │ │ │ │ o _T_h_e_ _a_p_p_l_i_c_a_t_i_o_n_ _o_b_j_e_c_t │ │ │ │ │ o _C_o_n_f_i_g_u_r_i_n_g_ _t_h_e_ _s_e_t_t_i_n_g_s_ _m_o_d_u_l_e │ │ │ │ │ o _A_p_p_l_y_i_n_g_ _A_S_G_I_ _m_i_d_d_l_e_w_a_r_e │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _a_u_t_h_e_n_t_i_c_a_t_e_ _a_g_a_i_n_s_t_ _D_j_a_n_g_o_’_s_ _u_s_e_r_ _d_a_t_a_b_a_s_e_ _f_r_o_m_ _A_p_a_c_h_e │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _D_a_p_h_n_e │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/asgi/uvicorn.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to use Django with Uvicorn — Django 5.1b1 documentation │ │ │ │ + How to use Django with Uvicorn — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -139,47 +140,47 @@ │ │ │ │
  • Deploying Django using Uvicorn and Gunicorn
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to use Django with Hypercorn

    │ │ │ │ + title="capitolo precedente">How to use Django with Hypercorn

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Deployment checklist

    │ │ │ │ + title="capitolo successivo">Deployment checklist

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo uussee DDjjaannggoo wwiitthh UUvviiccoorrnn_?¶ ************ │ │ │ │ │ _U_v_i_c_o_r_n is an ASGI server based on uvloop and httptools, with an emphasis on │ │ │ │ │ speed. │ │ │ │ │ ********** IInnssttaalllliinngg UUvviiccoorrnn_?¶ ********** │ │ │ │ │ You can install Uvicorn with pip: │ │ │ │ │ @@ -29,16 +29,16 @@ │ │ │ │ │ Then start Gunicorn using the Uvicorn worker class like this: │ │ │ │ │ python -m gunicorn myproject.asgi:application -k uvicorn.workers.UvicornWorker │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _U_v_i_c_o_r_n │ │ │ │ │ o _I_n_s_t_a_l_l_i_n_g_ _U_v_i_c_o_r_n │ │ │ │ │ o _R_u_n_n_i_n_g_ _D_j_a_n_g_o_ _i_n_ _U_v_i_c_o_r_n │ │ │ │ │ o _D_e_p_l_o_y_i_n_g_ _D_j_a_n_g_o_ _u_s_i_n_g_ _U_v_i_c_o_r_n_ _a_n_d_ _G_u_n_i_c_o_r_n │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _H_y_p_e_r_c_o_r_n │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _D_e_p_l_o_y_m_e_n_t_ _c_h_e_c_k_l_i_s_t │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/checklist.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Deployment checklist — Django 5.1b1 documentation │ │ │ │ + Deployment checklist — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -161,15 +162,15 @@ │ │ │ │ header, or otherwise ensure that you aren’t vulnerable to this category of │ │ │ │ attacks.

    │ │ │ │

    You should also configure the web server that sits in front of Django to │ │ │ │ validate the host. It should respond with a static error page or ignore │ │ │ │ requests for incorrect hosts instead of forwarding the request to Django. This │ │ │ │ way you’ll avoid spurious errors in your Django logs (or emails if you have │ │ │ │ error reporting configured that way). For example, on nginx you might set up a │ │ │ │ -default server to return “444 No Response” on an unrecognized host:

    │ │ │ │ +default server to return «444 No Response» on an unrecognized host:

    │ │ │ │
    server {
    │ │ │ │      listen 80 default_server;
    │ │ │ │      return 444;
    │ │ │ │  }
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -344,47 +345,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to use Django with Uvicorn

    │ │ │ │ + title="capitolo precedente">How to use Django with Uvicorn

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to upgrade Django to a newer version

    │ │ │ │ + title="capitolo successivo">How to upgrade Django to a newer version

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ DDeeppllooyymmeenntt cchheecckklliisstt_?¶ ************ │ │ │ │ │ The internet is a hostile environment. Before deploying your Django project, │ │ │ │ │ you should take some time to review your settings, with security, performance, │ │ │ │ │ and operations in mind. │ │ │ │ │ Django includes many _s_e_c_u_r_i_t_y_ _f_e_a_t_u_r_e_s. Some are built-in and always enabled. │ │ │ │ │ @@ -65,15 +65,15 @@ │ │ │ │ │ use a wildcard, you must perform your own validation of the Host HTTP header, │ │ │ │ │ or otherwise ensure that you aren’t vulnerable to this category of attacks. │ │ │ │ │ You should also configure the web server that sits in front of Django to │ │ │ │ │ validate the host. It should respond with a static error page or ignore │ │ │ │ │ requests for incorrect hosts instead of forwarding the request to Django. This │ │ │ │ │ way you’ll avoid spurious errors in your Django logs (or emails if you have │ │ │ │ │ error reporting configured that way). For example, on nginx you might set up a │ │ │ │ │ -default server to return “444 No Response” on an unrecognized host: │ │ │ │ │ +default server to return «444 No Response» on an unrecognized host: │ │ │ │ │ server { │ │ │ │ │ listen 80 default_server; │ │ │ │ │ return 444; │ │ │ │ │ } │ │ │ │ │ ******** _CC_AA_CC_HH_EE_SS_?¶ ******** │ │ │ │ │ If you’re using a cache, connection parameters may be different in development │ │ │ │ │ and in production. Django defaults to per-process _l_o_c_a_l_-_m_e_m_o_r_y_ _c_a_c_h_i_n_g which │ │ │ │ │ @@ -178,16 +178,16 @@ │ │ │ │ │ # _S_e_s_s_i_o_n_s │ │ │ │ │ # _C_O_N_N___M_A_X___A_G_E │ │ │ │ │ # _T_E_M_P_L_A_T_E_S │ │ │ │ │ o _E_r_r_o_r_ _r_e_p_o_r_t_i_n_g │ │ │ │ │ # _L_O_G_G_I_N_G │ │ │ │ │ # _A_D_M_I_N_S_ _a_n_d_ _M_A_N_A_G_E_R_S │ │ │ │ │ # _C_u_s_t_o_m_i_z_e_ _t_h_e_ _d_e_f_a_u_l_t_ _e_r_r_o_r_ _v_i_e_w_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _U_v_i_c_o_r_n │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_p_g_r_a_d_e_ _D_j_a_n_g_o_ _t_o_ _a_ _n_e_w_e_r_ _v_e_r_s_i_o_n │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/index.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to deploy Django — Django 5.1b1 documentation │ │ │ │ + How to deploy Django — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,37 +54,37 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    How to deploy Django

    │ │ │ │ -

    Django is full of shortcuts to make web developers’ lives easier, but all │ │ │ │ +

    Django is full of shortcuts to make web developers” lives easier, but all │ │ │ │ those tools are of no use if you can’t easily deploy your sites. Since Django’s │ │ │ │ inception, ease of deployment has been a major goal.

    │ │ │ │

    There are many options for deploying your Django application, based on your │ │ │ │ architecture or your particular business needs, but that discussion is outside │ │ │ │ the scope of what Django can give you as guidance.

    │ │ │ │

    Django, being a web framework, needs a web server in order to operate. And │ │ │ │ since most web servers don’t natively speak Python, we need an interface to │ │ │ │ @@ -142,47 +143,47 @@ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,12 +1,12 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ddeeppllooyy DDjjaannggoo_?¶ ************ │ │ │ │ │ -Django is full of shortcuts to make web developers’ lives easier, but all those │ │ │ │ │ +Django is full of shortcuts to make web developers” lives easier, but all those │ │ │ │ │ tools are of no use if you can’t easily deploy your sites. Since Django’s │ │ │ │ │ inception, ease of deployment has been a major goal. │ │ │ │ │ There are many options for deploying your Django application, based on your │ │ │ │ │ architecture or your particular business needs, but that discussion is outside │ │ │ │ │ the scope of what Django can give you as guidance. │ │ │ │ │ Django, being a web framework, needs a web server in order to operate. And │ │ │ │ │ since most web servers don’t natively speak Python, we need an interface to │ │ │ │ │ @@ -40,16 +40,16 @@ │ │ │ │ │ * _D_e_p_l_o_y_m_e_n_t_ _c_h_e_c_k_l_i_s_t │ │ │ │ │ o _R_u_n_ _m_a_n_a_g_e_._p_y_ _c_h_e_c_k_ _-_-_d_e_p_l_o_y │ │ │ │ │ o _C_r_i_t_i_c_a_l_ _s_e_t_t_i_n_g_s │ │ │ │ │ o _E_n_v_i_r_o_n_m_e_n_t_-_s_p_e_c_i_f_i_c_ _s_e_t_t_i_n_g_s │ │ │ │ │ o _H_T_T_P_S │ │ │ │ │ o _P_e_r_f_o_r_m_a_n_c_e_ _o_p_t_i_m_i_z_a_t_i_o_n_s │ │ │ │ │ o _E_r_r_o_r_ _r_e_p_o_r_t_i_n_g │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _w_r_i_t_e_ _a_ _c_u_s_t_o_m_ _s_t_o_r_a_g_e_ _c_l_a_s_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _d_e_p_l_o_y_ _w_i_t_h_ _W_S_G_I │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/apache-auth.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to authenticate against Django’s user database from Apache — Django 5.1b1 documentation │ │ │ │ + How to authenticate against Django’s user database from Apache — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -86,26 +87,26 @@ │ │ │ │
      │ │ │ │
    • Serve static/media files directly from Apache only to authenticated users.

    • │ │ │ │
    • Authenticate access to a Subversion repository against Django users with │ │ │ │ a certain permission.

    • │ │ │ │
    • Allow certain users to connect to a WebDAV share created with mod_dav.

    • │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    If you have installed a custom user model and │ │ │ │ want to use this default auth handler, it must support an is_active │ │ │ │ attribute. If you want to use group based authorization, your custom user │ │ │ │ -must have a relation named ‘groups’, referring to a related object that has │ │ │ │ -a ‘name’ field. You can also specify your own custom mod_wsgi │ │ │ │ +must have a relation named “groups”, referring to a related object that has │ │ │ │ +a “name” field. You can also specify your own custom mod_wsgi │ │ │ │ auth handler if your custom cannot conform to these requirements.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Authentication with mod_wsgi

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The use of WSGIApplicationGroup %{GLOBAL} in the configurations below │ │ │ │ presumes that your Apache instance is running only one Django application. │ │ │ │ If you are running more than one Django application, please refer to the │ │ │ │ Defining Application Groups section of the mod_wsgi docs for more │ │ │ │ information about this setting.

    │ │ │ │
    │ │ │ │

    Make sure that mod_wsgi is installed and activated and that you have │ │ │ │ @@ -183,15 +184,15 @@ │ │ │ │

    To support the WSGIAuthGroupScript directive, the same WSGI script │ │ │ │ mysite.wsgi must also import the groups_for_user function which │ │ │ │ returns a list groups the given user belongs to.

    │ │ │ │
    from django.contrib.auth.handlers.modwsgi import check_password, groups_for_user
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    Requests for /secret/ will now also require user to be a member of the │ │ │ │ -“secret-agents” group.

    │ │ │ │ +«secret-agents» group.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -212,47 +213,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to use Django with Apache and mod_wsgi

    │ │ │ │ + title="capitolo precedente">How to use Django with Apache and mod_wsgi

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to deploy with ASGI

    │ │ │ │ + title="capitolo successivo">How to deploy with ASGI

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,29 +1,29 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo aauutthheennttiiccaattee aaggaaiinnsstt DDjjaannggoo?’ss uusseerr ddaattaabbaassee ffrroomm AAppaacchhee_?¶ ************ │ │ │ │ │ Since keeping multiple authentication databases in sync is a common problem │ │ │ │ │ when dealing with Apache, you can configure Apache to authenticate against │ │ │ │ │ Django’s _a_u_t_h_e_n_t_i_c_a_t_i_o_n_ _s_y_s_t_e_m directly. This requires Apache version >= 2.2 │ │ │ │ │ and mod_wsgi >= 2.0. For example, you could: │ │ │ │ │ * Serve static/media files directly from Apache only to authenticated │ │ │ │ │ users. │ │ │ │ │ * Authenticate access to a _S_u_b_v_e_r_s_i_o_n repository against Django users with │ │ │ │ │ a certain permission. │ │ │ │ │ * Allow certain users to connect to a WebDAV share created with _m_o_d___d_a_v. │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ If you have installed a _c_u_s_t_o_m_ _u_s_e_r_ _m_o_d_e_l and want to use this default auth │ │ │ │ │ handler, it must support an is_active attribute. If you want to use group based │ │ │ │ │ -authorization, your custom user must have a relation named ‘groups’, referring │ │ │ │ │ -to a related object that has a ‘name’ field. You can also specify your own │ │ │ │ │ +authorization, your custom user must have a relation named “groups”, referring │ │ │ │ │ +to a related object that has a “name” field. You can also specify your own │ │ │ │ │ custom mod_wsgi auth handler if your custom cannot conform to these │ │ │ │ │ requirements. │ │ │ │ │ ********** AAuutthheennttiiccaattiioonn wwiitthh mmoodd__wwssggii_?¶ ********** │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ The use of WSGIApplicationGroup %{GLOBAL} in the configurations below presumes │ │ │ │ │ that your Apache instance is running only one Django application. If you are │ │ │ │ │ running more than one Django application, please refer to the _D_e_f_i_n_i_n_g │ │ │ │ │ _A_p_p_l_i_c_a_t_i_o_n_ _G_r_o_u_p_s section of the mod_wsgi docs for more information about this │ │ │ │ │ setting. │ │ │ │ │ Make sure that mod_wsgi is installed and activated and that you have followed │ │ │ │ │ the steps to set up _A_p_a_c_h_e_ _w_i_t_h_ _m_o_d___w_s_g_i. │ │ │ │ │ @@ -86,22 +86,22 @@ │ │ │ │ │ Require valid-user │ │ │ │ │ │ │ │ │ │ To support the WSGIAuthGroupScript directive, the same WSGI script mysite.wsgi │ │ │ │ │ must also import the groups_for_user function which returns a list groups the │ │ │ │ │ given user belongs to. │ │ │ │ │ from django.contrib.auth.handlers.modwsgi import check_password, │ │ │ │ │ groups_for_user │ │ │ │ │ -Requests for /secret/ will now also require user to be a member of the “secret- │ │ │ │ │ -agents” group. │ │ │ │ │ +Requests for /secret/ will now also require user to be a member of the «secret- │ │ │ │ │ +agents» group. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _a_u_t_h_e_n_t_i_c_a_t_e_ _a_g_a_i_n_s_t_ _D_j_a_n_g_o_’_s_ _u_s_e_r_ _d_a_t_a_b_a_s_e_ _f_r_o_m_ _A_p_a_c_h_e │ │ │ │ │ o _A_u_t_h_e_n_t_i_c_a_t_i_o_n_ _w_i_t_h_ _m_o_d___w_s_g_i │ │ │ │ │ # _A_u_t_h_o_r_i_z_a_t_i_o_n_ _w_i_t_h_ _m_o_d___w_s_g_i_ _a_n_d_ _D_j_a_n_g_o_ _g_r_o_u_p_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _A_p_a_c_h_e_ _a_n_d_ _m_o_d___w_s_g_i │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _d_e_p_l_o_y_ _w_i_t_h_ _A_S_G_I │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/gunicorn.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to use Django with Gunicorn — Django 5.1b1 documentation │ │ │ │ + How to use Django with Gunicorn — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,37 +54,37 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    How to use Django with Gunicorn

    │ │ │ │ -

    Gunicorn (‘Green Unicorn’) is a pure-Python WSGI server for UNIX. It has no │ │ │ │ +

    Gunicorn (“Green Unicorn”) is a pure-Python WSGI server for UNIX. It has no │ │ │ │ dependencies and can be installed using pip.

    │ │ │ │
    │ │ │ │

    Installing Gunicorn

    │ │ │ │

    Install gunicorn by running python -m pip install gunicorn. For more │ │ │ │ details, see the gunicorn documentation.

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -120,47 +121,47 @@ │ │ │ │
  • Running Django in Gunicorn as a generic WSGI application
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to deploy with WSGI

    │ │ │ │ + title="capitolo precedente">How to deploy with WSGI

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to use Django with uWSGI

    │ │ │ │ + title="capitolo successivo">How to use Django with uWSGI

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,12 +1,12 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo uussee DDjjaannggoo wwiitthh GGuunniiccoorrnn_?¶ ************ │ │ │ │ │ -_G_u_n_i_c_o_r_n (‘Green Unicorn’) is a pure-Python WSGI server for UNIX. It has no │ │ │ │ │ +_G_u_n_i_c_o_r_n (“Green Unicorn”) is a pure-Python WSGI server for UNIX. It has no │ │ │ │ │ dependencies and can be installed using pip. │ │ │ │ │ ********** IInnssttaalllliinngg GGuunniiccoorrnn_?¶ ********** │ │ │ │ │ Install gunicorn by running python -m pip install gunicorn. For more details, │ │ │ │ │ see the _g_u_n_i_c_o_r_n_ _d_o_c_u_m_e_n_t_a_t_i_o_n. │ │ │ │ │ ********** RRuunnnniinngg DDjjaannggoo iinn GGuunniiccoorrnn aass aa ggeenneerriicc WWSSGGII aapppplliiccaattiioonn_?¶ ********** │ │ │ │ │ When Gunicorn is installed, a gunicorn command is available which starts the │ │ │ │ │ Gunicorn server process. The simplest invocation of gunicorn is to pass the │ │ │ │ │ @@ -17,16 +17,16 @@ │ │ │ │ │ requires that your project be on the Python path; the simplest way to ensure │ │ │ │ │ that is to run this command from the same directory as your manage.py file. │ │ │ │ │ See Gunicorn’s _d_e_p_l_o_y_m_e_n_t_ _d_o_c_u_m_e_n_t_a_t_i_o_n for additional tips. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _G_u_n_i_c_o_r_n │ │ │ │ │ o _I_n_s_t_a_l_l_i_n_g_ _G_u_n_i_c_o_r_n │ │ │ │ │ o _R_u_n_n_i_n_g_ _D_j_a_n_g_o_ _i_n_ _G_u_n_i_c_o_r_n_ _a_s_ _a_ _g_e_n_e_r_i_c_ _W_S_G_I_ _a_p_p_l_i_c_a_t_i_o_n │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _d_e_p_l_o_y_ _w_i_t_h_ _W_S_G_I │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _u_W_S_G_I │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/index.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to deploy with WSGI — Django 5.1b1 documentation │ │ │ │ + How to deploy with WSGI — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -117,15 +118,15 @@ │ │ │ │ locate the appropriate settings module. It must contain the dotted path to the │ │ │ │ settings module. You can use a different value for development and production; │ │ │ │ it all depends on how you organize your settings.

    │ │ │ │

    If this variable isn’t set, the default wsgi.py sets it to │ │ │ │ mysite.settings, where mysite is the name of your project. That’s how │ │ │ │ runserver discovers the default settings file by default.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Since environment variables are process-wide, this doesn’t work when you │ │ │ │ run multiple Django sites in the same process. This happens with mod_wsgi.

    │ │ │ │

    To avoid this problem, use mod_wsgi’s daemon mode with each site in its │ │ │ │ own daemon process, or override the value from the environment by │ │ │ │ enforcing os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" in │ │ │ │ your wsgi.py.

    │ │ │ │
    │ │ │ │ @@ -165,47 +166,47 @@ │ │ │ │
  • Applying WSGI middleware
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to deploy Django

    │ │ │ │ + title="capitolo precedente">How to deploy Django

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to use Django with Gunicorn

    │ │ │ │ + title="capitolo successivo">How to use Django with Gunicorn

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ddeeppllooyy wwiitthh WWSSGGII_?¶ ************ │ │ │ │ │ Django’s primary deployment platform is _W_S_G_I, the Python standard for web │ │ │ │ │ servers and applications. │ │ │ │ │ Django’s _s_t_a_r_t_p_r_o_j_e_c_t management command sets up a minimal default WSGI │ │ │ │ │ configuration for you, which you can tweak as needed for your project, and │ │ │ │ │ @@ -31,15 +31,15 @@ │ │ │ │ │ Django uses the _D_J_A_N_G_O___S_E_T_T_I_N_G_S___M_O_D_U_L_E environment variable to locate the │ │ │ │ │ appropriate settings module. It must contain the dotted path to the settings │ │ │ │ │ module. You can use a different value for development and production; it all │ │ │ │ │ depends on how you organize your settings. │ │ │ │ │ If this variable isn’t set, the default wsgi.py sets it to mysite.settings, │ │ │ │ │ where mysite is the name of your project. That’s how _r_u_n_s_e_r_v_e_r discovers the │ │ │ │ │ default settings file by default. │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ Since environment variables are process-wide, this doesn’t work when you run │ │ │ │ │ multiple Django sites in the same process. This happens with mod_wsgi. │ │ │ │ │ To avoid this problem, use mod_wsgi’s daemon mode with each site in its own │ │ │ │ │ daemon process, or override the value from the environment by enforcing │ │ │ │ │ os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" in your wsgi.py. │ │ │ │ │ ********** AAppppllyyiinngg WWSSGGII mmiiddddlleewwaarree_?¶ ********** │ │ │ │ │ To apply _WW_SS_GG_II_ _mm_ii_dd_dd_ll_ee_ww_aa_rr_ee you can wrap the application object. For instance you │ │ │ │ │ @@ -51,16 +51,16 @@ │ │ │ │ │ application that later delegates to the Django WSGI application, if you want to │ │ │ │ │ combine a Django application with a WSGI application of another framework. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _d_e_p_l_o_y_ _w_i_t_h_ _W_S_G_I │ │ │ │ │ o _T_h_e_ _a_p_p_l_i_c_a_t_i_o_n_ _o_b_j_e_c_t │ │ │ │ │ o _C_o_n_f_i_g_u_r_i_n_g_ _t_h_e_ _s_e_t_t_i_n_g_s_ _m_o_d_u_l_e │ │ │ │ │ o _A_p_p_l_y_i_n_g_ _W_S_G_I_ _m_i_d_d_l_e_w_a_r_e │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _d_e_p_l_o_y_ _D_j_a_n_g_o │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _G_u_n_i_c_o_r_n │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/modwsgi.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to use Django with Apache and mod_wsgi — Django 5.1b1 documentation │ │ │ │ + How to use Django with Apache and mod_wsgi — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -100,15 +101,15 @@ │ │ │ │ Require all granted │ │ │ │ </Files> │ │ │ │ </Directory> │ │ │ │
    │ │ │ │
    │ │ │ │

    The first bit in the WSGIScriptAlias line is the base URL path you want to │ │ │ │ serve your application at (/ indicates the root url), and the second is the │ │ │ │ -location of a “WSGI file” – see below – on your system, usually inside of │ │ │ │ +location of a «WSGI file» – see below – on your system, usually inside of │ │ │ │ your project package (mysite in this example). This tells Apache to serve │ │ │ │ any request below the given URL using the WSGI application defined in that │ │ │ │ file.

    │ │ │ │

    If you install your project’s Python dependencies inside a virtual │ │ │ │ environment, add the path using WSGIPythonHome. See the mod_wsgi │ │ │ │ virtual environment guide for more details.

    │ │ │ │

    The WSGIPythonPath line ensures that your project package is available for │ │ │ │ @@ -117,15 +118,15 @@ │ │ │ │ file.

    │ │ │ │

    Next we’ll need to ensure this wsgi.py with a WSGI application object │ │ │ │ exists. As of Django version 1.4, startproject will have created one │ │ │ │ for you; otherwise, you’ll need to create it. See the WSGI overview │ │ │ │ documentation for the default contents you │ │ │ │ should put in this file, and what else you can add to it.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    If multiple Django sites are run in a single mod_wsgi process, all of them │ │ │ │ will use the settings of whichever one happens to run first. This can be │ │ │ │ solved by changing:

    │ │ │ │
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    in wsgi.py, to:

    │ │ │ │ @@ -153,15 +154,15 @@ │ │ │ │
    │ │ │ │

    See the Files section of the Unicode reference guide for │ │ │ │ details.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Using mod_wsgi daemon mode

    │ │ │ │ -

    “Daemon mode” is the recommended mode for running mod_wsgi (on non-Windows │ │ │ │ +

    «Daemon mode» is the recommended mode for running mod_wsgi (on non-Windows │ │ │ │ platforms). To create the required daemon process group and delegate the │ │ │ │ Django instance to run in it, you will need to add appropriate │ │ │ │ WSGIDaemonProcess and WSGIProcessGroup directives. A further change │ │ │ │ required to the above configuration if you use daemon mode is that you can’t │ │ │ │ use WSGIPythonPath; instead you should use the python-path option to │ │ │ │ WSGIDaemonProcess, for example:

    │ │ │ │
    WSGIDaemonProcess example.com python-home=/path/to/venv python-path=/path/to/mysite.com
    │ │ │ │ @@ -272,47 +273,47 @@
    │ │ │ │  
  • Authenticating against Django’s user database from Apache
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to use Django with uWSGI

    │ │ │ │ + title="capitolo precedente">How to use Django with uWSGI

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to authenticate against Django’s user database from Apache

    │ │ │ │ + title="capitolo successivo">How to authenticate against Django’s user database from Apache

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo uussee DDjjaannggoo wwiitthh AAppaacchhee aanndd mmoodd__wwssggii_?¶ ************ │ │ │ │ │ Deploying Django with _A_p_a_c_h_e and _m_o_d___w_s_g_i is a tried and tested way to get │ │ │ │ │ Django into production. │ │ │ │ │ mod_wsgi is an Apache module which can host any Python _W_S_G_I application, │ │ │ │ │ including Django. Django will work with any version of Apache which supports │ │ │ │ │ @@ -20,29 +20,29 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Require all granted │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ The first bit in the WSGIScriptAlias line is the base URL path you want to │ │ │ │ │ serve your application at (/ indicates the root url), and the second is the │ │ │ │ │ -location of a “WSGI file” – see below – on your system, usually inside of your │ │ │ │ │ +location of a «WSGI file» – see below – on your system, usually inside of your │ │ │ │ │ project package (mysite in this example). This tells Apache to serve any │ │ │ │ │ request below the given URL using the WSGI application defined in that file. │ │ │ │ │ If you install your project’s Python dependencies inside a _v_i_r_t_u_a_l_ _e_n_v_i_r_o_n_m_e_n_t, │ │ │ │ │ add the path using WSGIPythonHome. See the _m_o_d___w_s_g_i_ _v_i_r_t_u_a_l_ _e_n_v_i_r_o_n_m_e_n_t_ _g_u_i_d_e │ │ │ │ │ for more details. │ │ │ │ │ The WSGIPythonPath line ensures that your project package is available for │ │ │ │ │ import on the Python path; in other words, that import mysite works. │ │ │ │ │ The piece ensures that Apache can access your wsgi.py file. │ │ │ │ │ Next we’ll need to ensure this wsgi.py with a WSGI application object exists. │ │ │ │ │ As of Django version 1.4, _s_t_a_r_t_p_r_o_j_e_c_t will have created one for you; │ │ │ │ │ otherwise, you’ll need to create it. See the _W_S_G_I_ _o_v_e_r_v_i_e_w_ _d_o_c_u_m_e_n_t_a_t_i_o_n for │ │ │ │ │ the default contents you should put in this file, and what else you can add to │ │ │ │ │ it. │ │ │ │ │ -Warning │ │ │ │ │ +Avvertimento │ │ │ │ │ If multiple Django sites are run in a single mod_wsgi process, all of them will │ │ │ │ │ use the settings of whichever one happens to run first. This can be solved by │ │ │ │ │ changing: │ │ │ │ │ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings") │ │ │ │ │ in wsgi.py, to: │ │ │ │ │ os.environ["DJANGO_SETTINGS_MODULE"] = "{{ project_name }}.settings" │ │ │ │ │ or by _u_s_i_n_g_ _m_o_d___w_s_g_i_ _d_a_e_m_o_n_ _m_o_d_e and ensuring that each site runs in its own │ │ │ │ │ @@ -55,15 +55,15 @@ │ │ │ │ │ export LC_ALL='en_US.UTF-8' │ │ │ │ │ A common location to put this configuration is /etc/apache2/envvars. │ │ │ │ │ Alternatively, if you are _u_s_i_n_g_ _m_o_d___w_s_g_i_ _d_a_e_m_o_n_ _m_o_d_e you can add lang and │ │ │ │ │ locale options to the WSGIDaemonProcess directive: │ │ │ │ │ WSGIDaemonProcess example.com lang='en_US.UTF-8' locale='en_US.UTF-8' │ │ │ │ │ See the _F_i_l_e_s section of the Unicode reference guide for details. │ │ │ │ │ ********** UUssiinngg mmoodd__wwssggii ddaaeemmoonn mmooddee_?¶ ********** │ │ │ │ │ -“Daemon mode” is the recommended mode for running mod_wsgi (on non-Windows │ │ │ │ │ +«Daemon mode» is the recommended mode for running mod_wsgi (on non-Windows │ │ │ │ │ platforms). To create the required daemon process group and delegate the Django │ │ │ │ │ instance to run in it, you will need to add appropriate WSGIDaemonProcess and │ │ │ │ │ WSGIProcessGroup directives. A further change required to the above │ │ │ │ │ configuration if you use daemon mode is that you can’t use WSGIPythonPath; │ │ │ │ │ instead you should use the python-path option to WSGIDaemonProcess, for │ │ │ │ │ example: │ │ │ │ │ WSGIDaemonProcess example.com python-home=/path/to/venv python-path=/path/to/ │ │ │ │ │ @@ -136,16 +136,16 @@ │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _A_p_a_c_h_e_ _a_n_d_ _m_o_d___w_s_g_i │ │ │ │ │ o _B_a_s_i_c_ _c_o_n_f_i_g_u_r_a_t_i_o_n │ │ │ │ │ o _U_s_i_n_g_ _m_o_d___w_s_g_i_ _d_a_e_m_o_n_ _m_o_d_e │ │ │ │ │ o _S_e_r_v_i_n_g_ _f_i_l_e_s │ │ │ │ │ o _S_e_r_v_i_n_g_ _t_h_e_ _a_d_m_i_n_ _f_i_l_e_s │ │ │ │ │ o _A_u_t_h_e_n_t_i_c_a_t_i_n_g_ _a_g_a_i_n_s_t_ _D_j_a_n_g_o_’_s_ _u_s_e_r_ _d_a_t_a_b_a_s_e_ _f_r_o_m_ _A_p_a_c_h_e │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _u_W_S_G_I │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _a_u_t_h_e_n_t_i_c_a_t_e_ _a_g_a_i_n_s_t_ _D_j_a_n_g_o_’_s_ _u_s_e_r_ _d_a_t_a_b_a_s_e_ _f_r_o_m_ _A_p_a_c_h_e │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/deployment/wsgi/uwsgi.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to use Django with uWSGI — Django 5.1b1 documentation │ │ │ │ + How to use Django with uWSGI — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,40 +54,40 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    How to use Django with uWSGI

    │ │ │ │

    uWSGI is a fast, self-healing and developer/sysadmin-friendly application │ │ │ │ container server coded in pure C.

    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    The uWSGI docs offer a tutorial covering Django, nginx, and uWSGI (one │ │ │ │ possible deployment setup of many). The docs below are focused on how to │ │ │ │ integrate Django with uWSGI.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Prerequisite: uWSGI

    │ │ │ │

    The uWSGI wiki describes several installation procedures. Using pip, the │ │ │ │ @@ -98,15 +99,15 @@ │ │ │ │ # Or install LTS (long term support). │ │ │ │ $ python -m pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz │ │ │ │

    │ │ │ │
    │ │ │ │
    │ │ │ │

    uWSGI model

    │ │ │ │

    uWSGI operates on a client-server model. Your web server (e.g., nginx, Apache) │ │ │ │ -communicates with a django-uwsgi “worker” process to serve dynamic content.

    │ │ │ │ +communicates with a django-uwsgi «worker» process to serve dynamic content.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Configuring and starting the uWSGI server for Django

    │ │ │ │

    uWSGI supports multiple ways to configure the process. See uWSGI’s │ │ │ │ configuration documentation.

    │ │ │ │

    Here’s an example command to start a uWSGI server:

    │ │ │ │
    uwsgi --chdir=/path/to/your/project \
    │ │ │ │ @@ -192,47 +193,47 @@
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  
    │ │ │ │    
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to use Django with Gunicorn

    │ │ │ │ + title="capitolo precedente">How to use Django with Gunicorn

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to use Django with Apache and mod_wsgi

    │ │ │ │ + title="capitolo successivo">How to use Django with Apache and mod_wsgi

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,29 +1,29 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo uussee DDjjaannggoo wwiitthh uuWWSSGGII_?¶ ************ │ │ │ │ │ _u_W_S_G_I is a fast, self-healing and developer/sysadmin-friendly application │ │ │ │ │ container server coded in pure C. │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ The uWSGI docs offer a _t_u_t_o_r_i_a_l covering Django, nginx, and uWSGI (one possible │ │ │ │ │ deployment setup of many). The docs below are focused on how to integrate │ │ │ │ │ Django with uWSGI. │ │ │ │ │ ********** PPrreerreeqquuiissiittee:: uuWWSSGGII_?¶ ********** │ │ │ │ │ The uWSGI wiki describes several _i_n_s_t_a_l_l_a_t_i_o_n_ _p_r_o_c_e_d_u_r_e_s. Using pip, the Python │ │ │ │ │ package manager, you can install any uWSGI version with a single command. For │ │ │ │ │ example: │ │ │ │ │ # Install current stable version. │ │ │ │ │ $ python -m pip install uwsgi │ │ │ │ │ │ │ │ │ │ # Or install LTS (long term support). │ │ │ │ │ $ python -m pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz │ │ │ │ │ ******** uuWWSSGGII mmooddeell_?¶ ******** │ │ │ │ │ uWSGI operates on a client-server model. Your web server (e.g., nginx, Apache) │ │ │ │ │ -communicates with a django-uwsgi “worker” process to serve dynamic content. │ │ │ │ │ +communicates with a django-uwsgi «worker» process to serve dynamic content. │ │ │ │ │ ******** CCoonnffiigguurriinngg aanndd ssttaarrttiinngg tthhee uuWWSSGGII sseerrvveerr ffoorr DDjjaannggoo_?¶ ******** │ │ │ │ │ uWSGI supports multiple ways to configure the process. See uWSGI’s │ │ │ │ │ _c_o_n_f_i_g_u_r_a_t_i_o_n_ _d_o_c_u_m_e_n_t_a_t_i_o_n. │ │ │ │ │ Here’s an example command to start a uWSGI server: │ │ │ │ │ uwsgi --chdir=/path/to/your/project \ │ │ │ │ │ --module=mysite.wsgi:application \ │ │ │ │ │ --env DJANGO_SETTINGS_MODULE=mysite.settings \ │ │ │ │ │ @@ -72,16 +72,16 @@ │ │ │ │ │ See the uWSGI docs on _m_a_n_a_g_i_n_g_ _t_h_e_ _u_W_S_G_I_ _p_r_o_c_e_s_s for information on starting, │ │ │ │ │ stopping and reloading the uWSGI workers. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _u_W_S_G_I │ │ │ │ │ o _P_r_e_r_e_q_u_i_s_i_t_e_:_ _u_W_S_G_I │ │ │ │ │ # _u_W_S_G_I_ _m_o_d_e_l │ │ │ │ │ # _C_o_n_f_i_g_u_r_i_n_g_ _a_n_d_ _s_t_a_r_t_i_n_g_ _t_h_e_ _u_W_S_G_I_ _s_e_r_v_e_r_ _f_o_r_ _D_j_a_n_g_o │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _G_u_n_i_c_o_r_n │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_ _w_i_t_h_ _A_p_a_c_h_e_ _a_n_d_ _m_o_d___w_s_g_i │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/error-reporting.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to manage error reporting — Django 5.1b1 documentation │ │ │ │ + How to manage error reporting — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -95,15 +96,15 @@ │ │ │ │ ADMINS setting whenever your code raises an unhandled exception and │ │ │ │ results in an internal server error (strictly speaking, for any response with │ │ │ │ an HTTP status code of 500 or greater). This gives the administrators immediate │ │ │ │ notification of any errors. The ADMINS will get a description of the │ │ │ │ error, a complete Python traceback, and details about the HTTP request that │ │ │ │ caused the error.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    In order to send email, Django requires a few settings telling it │ │ │ │ how to connect to your mail server. At the very least, you’ll need │ │ │ │ to specify EMAIL_HOST and possibly │ │ │ │ EMAIL_HOST_USER and EMAIL_HOST_PASSWORD, │ │ │ │ though other settings may be also required depending on your mail │ │ │ │ server’s configuration. Consult the Django settings │ │ │ │ documentation for a full list of email-related │ │ │ │ @@ -111,36 +112,36 @@ │ │ │ │

    │ │ │ │

    By default, Django will send email from root@localhost. However, some mail │ │ │ │ providers reject all email from this address. To use a different sender │ │ │ │ address, modify the SERVER_EMAIL setting.

    │ │ │ │

    To activate this behavior, put the email addresses of the recipients in the │ │ │ │ ADMINS setting.

    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    Server error emails are sent using the logging framework, so you can │ │ │ │ customize this behavior by customizing your logging configuration.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    404 errors

    │ │ │ │ -

    Django can also be configured to email errors about broken links (404 “page │ │ │ │ -not found” errors). Django sends emails about 404 errors when:

    │ │ │ │ +

    Django can also be configured to email errors about broken links (404 «page │ │ │ │ +not found» errors). Django sends emails about 404 errors when:

    │ │ │ │ │ │ │ │

    If those conditions are met, Django will email the users listed in the │ │ │ │ MANAGERS setting whenever your code raises a 404 and the request has │ │ │ │ a referer. It doesn’t bother to email for 404s that don’t have a referer – │ │ │ │ those are usually people typing in broken URLs or broken web bots. It also │ │ │ │ ignores 404s when the referer is equal to the requested URL, since this │ │ │ │ behavior is from broken web bots too.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    BrokenLinkEmailsMiddleware must appear │ │ │ │ before other middleware that intercepts 404 errors, such as │ │ │ │ LocaleMiddleware or │ │ │ │ FlatpageFallbackMiddleware. │ │ │ │ Put it toward the top of your MIDDLEWARE setting.

    │ │ │ │
    │ │ │ │

    You can tell Django to stop reporting particular 404s by tweaking the │ │ │ │ @@ -170,25 +171,25 @@ │ │ │ │

    (Note that these are regular expressions, so we put a backslash in front of │ │ │ │ periods to escape them.)

    │ │ │ │

    If you’d like to customize the behavior of │ │ │ │ django.middleware.common.BrokenLinkEmailsMiddleware further (for │ │ │ │ example to ignore requests coming from web crawlers), you should subclass it │ │ │ │ and override its methods.

    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    404 errors are logged using the logging framework. By default, these log │ │ │ │ records are ignored, but you can use them for error reporting by writing a │ │ │ │ handler and configuring logging appropriately.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Filtering error reports

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Filtering sensitive data is a hard problem, and it’s nearly impossible to │ │ │ │ guarantee that sensitive data won’t leak into an error report. Therefore, │ │ │ │ error reports should only be available to trusted team members and you │ │ │ │ should avoid transmitting error reports unencrypted over the internet │ │ │ │ (such as through email).

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -204,15 +205,15 @@ │ │ │ │ sensitive as described in the DEBUG documentation, Django offers a │ │ │ │ set of function decorators to help you control which information should be │ │ │ │ filtered out of error reports in a production environment (that is, where │ │ │ │ DEBUG is set to False): sensitive_variables() and │ │ │ │ sensitive_post_parameters().

    │ │ │ │
    │ │ │ │
    │ │ │ │ -sensitive_variables(*variables)[source]
    │ │ │ │ +sensitive_variables(*variables)[sorgente] │ │ │ │

    If a function (either a view or any regular callback) in your code uses │ │ │ │ local variables susceptible to contain sensitive information, you may │ │ │ │ prevent the values of those variables from being included in error reports │ │ │ │ using the sensitive_variables decorator:

    │ │ │ │
    from django.views.decorators.debug import sensitive_variables
    │ │ │ │  
    │ │ │ │  
    │ │ │ │ @@ -233,15 +234,15 @@
    │ │ │ │  
    @sensitive_variables()
    │ │ │ │  def my_function(): ...
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │

    When using multiple decorators

    │ │ │ │

    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 │ │ │ │ multiple decorators, then make sure to place @sensitive_variables │ │ │ │ at the top of the decorator chain. This way it will also hide the │ │ │ │ function argument as it gets passed through the other decorators:

    │ │ │ │
    @sensitive_variables("user", "pw", "cc")
    │ │ │ │  @some_decorator
    │ │ │ │  @another_decorator
    │ │ │ │  def process_info(user): ...
    │ │ │ │ @@ -251,15 +252,15 @@
    │ │ │ │  
    │ │ │ │ Changed in Django 5.0:

    Support for wrapping async functions was added.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -sensitive_post_parameters(*parameters)[source]
    │ │ │ │ +sensitive_post_parameters(*parameters)[sorgente] │ │ │ │

    If one of your views receives an HttpRequest object │ │ │ │ with POST parameters susceptible to │ │ │ │ contain sensitive information, you may prevent the values of those │ │ │ │ parameters from being included in the error reports using the │ │ │ │ sensitive_post_parameters decorator:

    │ │ │ │
    from django.views.decorators.debug import sensitive_post_parameters
    │ │ │ │  
    │ │ │ │ @@ -302,15 +303,15 @@
    │ │ │ │  

    All sensitive_variables() and sensitive_post_parameters() do is, │ │ │ │ respectively, annotate the decorated function with the names of sensitive │ │ │ │ variables and annotate the HttpRequest object with the names of sensitive │ │ │ │ POST parameters, so that this sensitive information can later be filtered out │ │ │ │ of reports when an error occurs. The actual filtering is done by Django’s │ │ │ │ default error reporter filter: │ │ │ │ django.views.debug.SafeExceptionReporterFilter. This filter uses the │ │ │ │ -decorators’ annotations to replace the corresponding values with stars │ │ │ │ +decorators” annotations to replace the corresponding values with stars │ │ │ │ (**********) when the error reports are produced. If you wish to │ │ │ │ override or customize this default behavior for your entire site, you need to │ │ │ │ define your own filter class and tell Django to use it via the │ │ │ │ DEFAULT_EXCEPTION_REPORTER_FILTER setting:

    │ │ │ │
    DEFAULT_EXCEPTION_REPORTER_FILTER = "path.to.your.CustomExceptionReporterFilter"
    │ │ │ │  
    │ │ │ │
    │ │ │ │ @@ -324,15 +325,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │

    Your custom filter class needs to inherit from │ │ │ │ django.views.debug.SafeExceptionReporterFilter and may override the │ │ │ │ following attributes and methods:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class SafeExceptionReporterFilter[source]
    │ │ │ │ +class SafeExceptionReporterFilter[sorgente] │ │ │ │
    │ │ │ │
    │ │ │ │ cleansed_substitute
    │ │ │ │

    The string value to replace sensitive value with. By default it │ │ │ │ replaces the values of sensitive variables with stars │ │ │ │ (**********).

    │ │ │ │
    │ │ │ │ @@ -348,33 +349,33 @@ │ │ │ │ re.compile(r"API|TOKEN|KEY|SECRET|PASS|SIGNATURE|HTTP_COOKIE", flags=re.IGNORECASE) │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -is_active(request)[source]
    │ │ │ │ +is_active(request)[sorgente] │ │ │ │

    Returns True to activate the filtering in │ │ │ │ get_post_parameters() and get_traceback_frame_variables(). │ │ │ │ By default the filter is active if DEBUG is False. Note │ │ │ │ that sensitive request.META values are always filtered along with │ │ │ │ sensitive setting values, as described in the DEBUG │ │ │ │ documentation.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -get_post_parameters(request)[source]
    │ │ │ │ +get_post_parameters(request)[sorgente] │ │ │ │

    Returns the filtered dictionary of POST parameters. Sensitive values │ │ │ │ are replaced with cleansed_substitute.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -get_traceback_frame_variables(request, tb_frame)[source]
    │ │ │ │ +get_traceback_frame_variables(request, tb_frame)[sorgente] │ │ │ │

    Returns the filtered dictionary of local variables for the given │ │ │ │ traceback frame. Sensitive values are replaced with │ │ │ │ cleansed_substitute.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -388,35 +389,35 @@ │ │ │ │ and formatting it as text or HTML appropriately. (The exception reporter uses │ │ │ │ DEFAULT_EXCEPTION_REPORTER_FILTER when preparing the exception │ │ │ │ report data.)

    │ │ │ │

    Your custom reporter class needs to inherit from │ │ │ │ django.views.debug.ExceptionReporter.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class ExceptionReporter[source]
    │ │ │ │ +class ExceptionReporter[sorgente] │ │ │ │
    │ │ │ │
    │ │ │ │ -html_template_path[source]
    │ │ │ │ +html_template_path[sorgente] │ │ │ │

    Property that returns a pathlib.Path representing the absolute │ │ │ │ filesystem path to a template for rendering the HTML representation of │ │ │ │ the exception. Defaults to the Django provided template.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -text_template_path[source]
    │ │ │ │ +text_template_path[sorgente] │ │ │ │

    Property that returns a pathlib.Path representing the absolute │ │ │ │ filesystem path to a template for rendering the plain-text │ │ │ │ representation of the exception. Defaults to the Django provided │ │ │ │ template.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -get_traceback_data()[source]
    │ │ │ │ +get_traceback_data()[sorgente] │ │ │ │

    Return a dictionary containing traceback information.

    │ │ │ │

    This is the main extension point for customizing exception reports, for │ │ │ │ example:

    │ │ │ │
    from django.views.debug import ExceptionReporter
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  class CustomExceptionReporter(ExceptionReporter):
    │ │ │ │ @@ -426,22 +427,22 @@
    │ │ │ │          return data
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -get_traceback_html()[source]
    │ │ │ │ +get_traceback_html()[sorgente] │ │ │ │

    Return HTML version of exception report.

    │ │ │ │

    Used for HTML version of debug 500 HTTP error page.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -get_traceback_text()[source]
    │ │ │ │ +get_traceback_text()[sorgente] │ │ │ │

    Return plain text version of exception report.

    │ │ │ │

    Used for plain text version of debug 500 HTTP error page and email │ │ │ │ reports.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ @@ -451,15 +452,15 @@ │ │ │ │
    def my_view(request):
    │ │ │ │      if request.user.is_authenticated:
    │ │ │ │          request.exception_reporter_class = CustomExceptionReporter()
    │ │ │ │      ...
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    You can also set up custom error reporting by writing a custom piece of │ │ │ │ exception middleware. If you do write custom │ │ │ │ error handling, it’s a good idea to emulate Django’s built-in error handling │ │ │ │ and only report/log errors if DEBUG is False.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -491,47 +492,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to upgrade Django to a newer version

    │ │ │ │ + title="capitolo precedente">How to upgrade Django to a newer version

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to provide initial data for models

    │ │ │ │ + title="capitolo successivo">How to provide initial data for models

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo mmaannaaggee eerrrroorr rreeppoorrttiinngg_?¶ ************ │ │ │ │ │ When you’re running a public site you should always turn off the _D_E_B_U_G setting. │ │ │ │ │ That will make your server run much faster, and will also prevent malicious │ │ │ │ │ users from seeing details of your application that can be revealed by the error │ │ │ │ │ pages. │ │ │ │ │ @@ -14,42 +14,42 @@ │ │ │ │ │ ******** SSeerrvveerr eerrrroorrss_?¶ ******** │ │ │ │ │ When _D_E_B_U_G is False, Django will email the users listed in the _A_D_M_I_N_S setting │ │ │ │ │ whenever your code raises an unhandled exception and results in an internal │ │ │ │ │ server error (strictly speaking, for any response with an HTTP status code of │ │ │ │ │ 500 or greater). This gives the administrators immediate notification of any │ │ │ │ │ errors. The _A_D_M_I_N_S will get a description of the error, a complete Python │ │ │ │ │ traceback, and details about the HTTP request that caused the error. │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ In order to send email, Django requires a few settings telling it how to │ │ │ │ │ connect to your mail server. At the very least, you’ll need to specify │ │ │ │ │ _E_M_A_I_L___H_O_S_T and possibly _E_M_A_I_L___H_O_S_T___U_S_E_R and _E_M_A_I_L___H_O_S_T___P_A_S_S_W_O_R_D, though other │ │ │ │ │ settings may be also required depending on your mail server’s configuration. │ │ │ │ │ Consult _t_h_e_ _D_j_a_n_g_o_ _s_e_t_t_i_n_g_s_ _d_o_c_u_m_e_n_t_a_t_i_o_n for a full list of email-related │ │ │ │ │ settings. │ │ │ │ │ By default, Django will send email from _r_o_o_t_@_l_o_c_a_l_h_o_s_t. However, some mail │ │ │ │ │ providers reject all email from this address. To use a different sender │ │ │ │ │ address, modify the _S_E_R_V_E_R___E_M_A_I_L setting. │ │ │ │ │ To activate this behavior, put the email addresses of the recipients in the │ │ │ │ │ _A_D_M_I_N_S setting. │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ Server error emails are sent using the logging framework, so you can customize │ │ │ │ │ this behavior by _c_u_s_t_o_m_i_z_i_n_g_ _y_o_u_r_ _l_o_g_g_i_n_g_ _c_o_n_f_i_g_u_r_a_t_i_o_n. │ │ │ │ │ ******** 440044 eerrrroorrss_?¶ ******** │ │ │ │ │ -Django can also be configured to email errors about broken links (404 “page not │ │ │ │ │ -found” errors). Django sends emails about 404 errors when: │ │ │ │ │ +Django can also be configured to email errors about broken links (404 «page not │ │ │ │ │ +found» errors). Django sends emails about 404 errors when: │ │ │ │ │ * _D_E_B_U_G is False; │ │ │ │ │ * Your _M_I_D_D_L_E_W_A_R_E setting includes │ │ │ │ │ _d_j_a_n_g_o_._m_i_d_d_l_e_w_a_r_e_._c_o_m_m_o_n_._B_r_o_k_e_n_L_i_n_k_E_m_a_i_l_s_M_i_d_d_l_e_w_a_r_e. │ │ │ │ │ If those conditions are met, Django will email the users listed in the _M_A_N_A_G_E_R_S │ │ │ │ │ setting whenever your code raises a 404 and the request has a referer. It │ │ │ │ │ doesn’t bother to email for 404s that don’t have a referer – those are usually │ │ │ │ │ people typing in broken URLs or broken web bots. It also ignores 404s when the │ │ │ │ │ referer is equal to the requested URL, since this behavior is from broken web │ │ │ │ │ bots too. │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ _B_r_o_k_e_n_L_i_n_k_E_m_a_i_l_s_M_i_d_d_l_e_w_a_r_e must appear before other middleware that intercepts │ │ │ │ │ 404 errors, such as _L_o_c_a_l_e_M_i_d_d_l_e_w_a_r_e or _F_l_a_t_p_a_g_e_F_a_l_l_b_a_c_k_M_i_d_d_l_e_w_a_r_e. Put it │ │ │ │ │ toward the top of your _M_I_D_D_L_E_W_A_R_E setting. │ │ │ │ │ You can tell Django to stop reporting particular 404s by tweaking the │ │ │ │ │ _I_G_N_O_R_A_B_L_E___4_0_4___U_R_L_S setting. It should be a list of compiled regular expression │ │ │ │ │ objects. For example: │ │ │ │ │ import re │ │ │ │ │ @@ -71,20 +71,20 @@ │ │ │ │ │ ] │ │ │ │ │ (Note that these are regular expressions, so we put a backslash in front of │ │ │ │ │ periods to escape them.) │ │ │ │ │ If you’d like to customize the behavior of │ │ │ │ │ _d_j_a_n_g_o_._m_i_d_d_l_e_w_a_r_e_._c_o_m_m_o_n_._B_r_o_k_e_n_L_i_n_k_E_m_a_i_l_s_M_i_d_d_l_e_w_a_r_e further (for example to │ │ │ │ │ ignore requests coming from web crawlers), you should subclass it and override │ │ │ │ │ its methods. │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ 404 errors are logged using the logging framework. By default, these log │ │ │ │ │ records are ignored, but you can use them for error reporting by writing a │ │ │ │ │ handler and _c_o_n_f_i_g_u_r_i_n_g_ _l_o_g_g_i_n_g appropriately. │ │ │ │ │ ********** FFiilltteerriinngg eerrrroorr rreeppoorrttss_?¶ ********** │ │ │ │ │ -Warning │ │ │ │ │ +Avvertimento │ │ │ │ │ Filtering sensitive data is a hard problem, and it’s nearly impossible to │ │ │ │ │ guarantee that sensitive data won’t leak into an error report. Therefore, error │ │ │ │ │ reports should only be available to trusted team members and you should avoid │ │ │ │ │ transmitting error reports unencrypted over the internet (such as through │ │ │ │ │ email). │ │ │ │ │ ******** FFiilltteerriinngg sseennssiittiivvee iinnffoorrmmaattiioonn_?¶ ******** │ │ │ │ │ Error reports are really helpful for debugging errors, so it is generally │ │ │ │ │ @@ -95,15 +95,15 @@ │ │ │ │ │ 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 │ │ │ │ │ credit card number. So in addition to filtering out settings that appear to be │ │ │ │ │ sensitive as described in the _D_E_B_U_G documentation, Django offers a set of │ │ │ │ │ function decorators to help you control which information should be filtered │ │ │ │ │ out of error reports in a production environment (that is, where _D_E_B_U_G is set │ │ │ │ │ to False): _s_e_n_s_i_t_i_v_e___v_a_r_i_a_b_l_e_s_(_) and _s_e_n_s_i_t_i_v_e___p_o_s_t___p_a_r_a_m_e_t_e_r_s_(_). │ │ │ │ │ - sensitive_variables(**vvaarriiaabblleess)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + sensitive_variables(**vvaarriiaabblleess)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ If a function (either a view or any regular callback) in your code uses │ │ │ │ │ local variables susceptible to contain sensitive information, you may │ │ │ │ │ prevent the values of those variables from being included in error │ │ │ │ │ reports using the sensitive_variables decorator: │ │ │ │ │ from django.views.decorators.debug import sensitive_variables │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -117,26 +117,26 @@ │ │ │ │ │ be hidden and replaced with stars (**********) in the error reports, │ │ │ │ │ whereas the value of the name variable will be disclosed. │ │ │ │ │ To systematically hide all local variables of a function from error logs, │ │ │ │ │ do not provide any argument to the sensitive_variables decorator: │ │ │ │ │ @sensitive_variables() │ │ │ │ │ def my_function(): ... │ │ │ │ │ When using multiple decorators │ │ │ │ │ - If the variable you want to hide is also a function argument (e.g. ‘user’ │ │ │ │ │ + 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 multiple │ │ │ │ │ decorators, then make sure to place @sensitive_variables at the top of │ │ │ │ │ the decorator chain. This way it will also hide the function argument as │ │ │ │ │ it gets passed through the other decorators: │ │ │ │ │ @sensitive_variables("user", "pw", "cc") │ │ │ │ │ @some_decorator │ │ │ │ │ @another_decorator │ │ │ │ │ def process_info(user): ... │ │ │ │ │ Changed in Django 5.0: │ │ │ │ │ Support for wrapping async functions was added. │ │ │ │ │ - sensitive_post_parameters(**ppaarraammeetteerrss)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + sensitive_post_parameters(**ppaarraammeetteerrss)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ If one of your views receives an _H_t_t_p_R_e_q_u_e_s_t object with _P_O_S_T_ _p_a_r_a_m_e_t_e_r_s │ │ │ │ │ susceptible to contain sensitive information, you may prevent the values │ │ │ │ │ of those parameters from being included in the error reports using the │ │ │ │ │ sensitive_post_parameters decorator: │ │ │ │ │ from django.views.decorators.debug import sensitive_post_parameters │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -166,15 +166,15 @@ │ │ │ │ │ ******** CCuussttoomm eerrrroorr rreeppoorrttss_?¶ ******** │ │ │ │ │ All _s_e_n_s_i_t_i_v_e___v_a_r_i_a_b_l_e_s_(_) and _s_e_n_s_i_t_i_v_e___p_o_s_t___p_a_r_a_m_e_t_e_r_s_(_) do is, respectively, │ │ │ │ │ annotate the decorated function with the names of sensitive variables and │ │ │ │ │ annotate the HttpRequest object with the names of sensitive POST parameters, so │ │ │ │ │ that this sensitive information can later be filtered out of reports when an │ │ │ │ │ error occurs. The actual filtering is done by Django’s default error reporter │ │ │ │ │ filter: _d_j_a_n_g_o_._v_i_e_w_s_._d_e_b_u_g_._S_a_f_e_E_x_c_e_p_t_i_o_n_R_e_p_o_r_t_e_r_F_i_l_t_e_r. This filter uses the │ │ │ │ │ -decorators’ annotations to replace the corresponding values with stars │ │ │ │ │ +decorators” annotations to replace the corresponding values with stars │ │ │ │ │ (**********) when the error reports are produced. If you wish to override or │ │ │ │ │ customize this default behavior for your entire site, you need to define your │ │ │ │ │ own filter class and tell Django to use it via the │ │ │ │ │ _D_E_F_A_U_L_T___E_X_C_E_P_T_I_O_N___R_E_P_O_R_T_E_R___F_I_L_T_E_R setting: │ │ │ │ │ DEFAULT_EXCEPTION_REPORTER_FILTER = │ │ │ │ │ "path.to.your.CustomExceptionReporterFilter" │ │ │ │ │ You may also control in a more granular way which filter to use within any │ │ │ │ │ @@ -182,98 +182,98 @@ │ │ │ │ │ def my_view(request): │ │ │ │ │ if request.user.is_authenticated: │ │ │ │ │ request.exception_reporter_filter = CustomExceptionReporterFilter() │ │ │ │ │ ... │ │ │ │ │ Your custom filter class needs to inherit from │ │ │ │ │ _d_j_a_n_g_o_._v_i_e_w_s_._d_e_b_u_g_._S_a_f_e_E_x_c_e_p_t_i_o_n_R_e_p_o_r_t_e_r_F_i_l_t_e_r and may override the following │ │ │ │ │ attributes and methods: │ │ │ │ │ - ccllaassss SafeExceptionReporterFilter_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + ccllaassss SafeExceptionReporterFilter_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ cleansed_substitute_¶ │ │ │ │ │ The string value to replace sensitive value with. By default it │ │ │ │ │ replaces the values of sensitive variables with stars (**********). │ │ │ │ │ hidden_settings_¶ │ │ │ │ │ A compiled regular expression object used to match settings and │ │ │ │ │ request.META values considered as sensitive. By default equivalent │ │ │ │ │ to: │ │ │ │ │ import re │ │ │ │ │ │ │ │ │ │ re.compile(r"API|TOKEN|KEY|SECRET|PASS|SIGNATURE|HTTP_COOKIE", │ │ │ │ │ flags=re.IGNORECASE) │ │ │ │ │ - is_active(rreeqquueesstt)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + is_active(rreeqquueesstt)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Returns True to activate the filtering in _g_e_t___p_o_s_t___p_a_r_a_m_e_t_e_r_s_(_) and │ │ │ │ │ _g_e_t___t_r_a_c_e_b_a_c_k___f_r_a_m_e___v_a_r_i_a_b_l_e_s_(_). By default the filter is active if │ │ │ │ │ _D_E_B_U_G is False. Note that sensitive request.META values are always │ │ │ │ │ filtered along with sensitive setting values, as described in the │ │ │ │ │ _D_E_B_U_G documentation. │ │ │ │ │ - get_post_parameters(rreeqquueesstt)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + get_post_parameters(rreeqquueesstt)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Returns the filtered dictionary of POST parameters. Sensitive │ │ │ │ │ values are replaced with _c_l_e_a_n_s_e_d___s_u_b_s_t_i_t_u_t_e. │ │ │ │ │ - get_traceback_frame_variables(rreeqquueesstt, ttbb__ffrraammee)_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + get_traceback_frame_variables(rreeqquueesstt, ttbb__ffrraammee)_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Returns the filtered dictionary of local variables for the given │ │ │ │ │ traceback frame. Sensitive values are replaced with │ │ │ │ │ _c_l_e_a_n_s_e_d___s_u_b_s_t_i_t_u_t_e. │ │ │ │ │ If you need to customize error reports beyond filtering you may specify a │ │ │ │ │ custom error reporter class by defining the _D_E_F_A_U_L_T___E_X_C_E_P_T_I_O_N___R_E_P_O_R_T_E_R setting: │ │ │ │ │ DEFAULT_EXCEPTION_REPORTER = "path.to.your.CustomExceptionReporter" │ │ │ │ │ The exception reporter is responsible for compiling the exception report data, │ │ │ │ │ and formatting it as text or HTML appropriately. (The exception reporter uses │ │ │ │ │ _D_E_F_A_U_L_T___E_X_C_E_P_T_I_O_N___R_E_P_O_R_T_E_R___F_I_L_T_E_R when preparing the exception report data.) │ │ │ │ │ Your custom reporter class needs to inherit from │ │ │ │ │ _d_j_a_n_g_o_._v_i_e_w_s_._d_e_b_u_g_._E_x_c_e_p_t_i_o_n_R_e_p_o_r_t_e_r. │ │ │ │ │ - ccllaassss ExceptionReporter_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ - html_template_path_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + ccllaassss ExceptionReporter_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ + html_template_path_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Property that returns a _p_a_t_h_l_i_b_._P_a_t_h representing the absolute │ │ │ │ │ filesystem path to a template for rendering the HTML representation │ │ │ │ │ of the exception. Defaults to the Django provided template. │ │ │ │ │ - text_template_path_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + text_template_path_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Property that returns a _p_a_t_h_l_i_b_._P_a_t_h representing the absolute │ │ │ │ │ filesystem path to a template for rendering the plain-text │ │ │ │ │ representation of the exception. Defaults to the Django provided │ │ │ │ │ template. │ │ │ │ │ - get_traceback_data()_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + get_traceback_data()_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Return a dictionary containing traceback information. │ │ │ │ │ This is the main extension point for customizing exception reports, │ │ │ │ │ for example: │ │ │ │ │ from django.views.debug import ExceptionReporter │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ class CustomExceptionReporter(ExceptionReporter): │ │ │ │ │ def get_traceback_data(self): │ │ │ │ │ data = super().get_traceback_data() │ │ │ │ │ # ... remove/add something here ... │ │ │ │ │ return data │ │ │ │ │ - get_traceback_html()_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + get_traceback_html()_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Return HTML version of exception report. │ │ │ │ │ Used for HTML version of debug 500 HTTP error page. │ │ │ │ │ - get_traceback_text()_[_s_o_u_r_c_e_]_¶ │ │ │ │ │ + get_traceback_text()_[_s_o_r_g_e_n_t_e_]_¶ │ │ │ │ │ Return plain text version of exception report. │ │ │ │ │ Used for plain text version of debug 500 HTTP error page and email │ │ │ │ │ reports. │ │ │ │ │ As with the filter class, you may control which exception reporter class to use │ │ │ │ │ within any given view by setting the HttpRequest’s exception_reporter_class │ │ │ │ │ attribute: │ │ │ │ │ def my_view(request): │ │ │ │ │ if request.user.is_authenticated: │ │ │ │ │ request.exception_reporter_class = CustomExceptionReporter() │ │ │ │ │ ... │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ You can also set up custom error reporting by writing a custom piece of │ │ │ │ │ _e_x_c_e_p_t_i_o_n_ _m_i_d_d_l_e_w_a_r_e. If you do write custom error handling, it’s a good idea │ │ │ │ │ to emulate Django’s built-in error handling and only report/log errors if _D_E_B_U_G │ │ │ │ │ is False. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _m_a_n_a_g_e_ _e_r_r_o_r_ _r_e_p_o_r_t_i_n_g │ │ │ │ │ o _E_m_a_i_l_ _r_e_p_o_r_t_s │ │ │ │ │ # _S_e_r_v_e_r_ _e_r_r_o_r_s │ │ │ │ │ # _4_0_4_ _e_r_r_o_r_s │ │ │ │ │ o _F_i_l_t_e_r_i_n_g_ _e_r_r_o_r_ _r_e_p_o_r_t_s │ │ │ │ │ # _F_i_l_t_e_r_i_n_g_ _s_e_n_s_i_t_i_v_e_ _i_n_f_o_r_m_a_t_i_o_n │ │ │ │ │ # _C_u_s_t_o_m_ _e_r_r_o_r_ _r_e_p_o_r_t_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _u_p_g_r_a_d_e_ _D_j_a_n_g_o_ _t_o_ _a_ _n_e_w_e_r_ _v_e_r_s_i_o_n │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _p_r_o_v_i_d_e_ _i_n_i_t_i_a_l_ _d_a_t_a_ _f_o_r_ _m_o_d_e_l_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/index.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - “How-to” guides — Django 5.1b1 documentation │ │ │ │ + «How-to» guides — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,37 +54,37 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ -

    “How-to” guides

    │ │ │ │ -

    Here you’ll find short answers to “How do I….?” types of questions. These │ │ │ │ +

    «How-to» guides

    │ │ │ │ +

    Here you’ll find short answers to «How do I….?» types of questions. These │ │ │ │ how-to guides don’t cover topics in depth – you’ll find that material in the │ │ │ │ Using Django and the API Reference. However, these guides will help │ │ │ │ you quickly accomplish common tasks.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    The Django community aggregator, where we aggregate content from the │ │ │ │ global Django community. Many writers in the aggregator write this sort of │ │ │ │ how-to material.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -124,47 +125,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,12 +1,12 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ -************ ?“HHooww--ttoo?” gguuiiddeess_?¶ ************ │ │ │ │ │ -Here you’ll find short answers to “How do I….?” types of questions. These how- │ │ │ │ │ +************ ?«HHooww--ttoo?» gguuiiddeess_?¶ ************ │ │ │ │ │ +Here you’ll find short answers to «How do I….?» types of questions. These how- │ │ │ │ │ to guides don’t cover topics in depth – you’ll find that material in the _U_s_i_n_g │ │ │ │ │ _D_j_a_n_g_o and the _A_P_I_ _R_e_f_e_r_e_n_c_e. However, these guides will help you quickly │ │ │ │ │ accomplish common tasks. │ │ │ │ │ * _H_o_w_ _t_o_ _a_u_t_h_e_n_t_i_c_a_t_e_ _u_s_i_n_g_ _R_E_M_O_T_E___U_S_E_R │ │ │ │ │ * _H_o_w_ _t_o_ _u_s_e_ _D_j_a_n_g_o_’_s_ _C_S_R_F_ _p_r_o_t_e_c_t_i_o_n │ │ │ │ │ * _H_o_w_ _t_o_ _c_r_e_a_t_e_ _c_u_s_t_o_m_ _d_j_a_n_g_o_-_a_d_m_i_n_ _c_o_m_m_a_n_d_s │ │ │ │ │ * _H_o_w_ _t_o_ _c_r_e_a_t_e_ _c_u_s_t_o_m_ _m_o_d_e_l_ _f_i_e_l_d_s │ │ │ │ │ @@ -24,20 +24,20 @@ │ │ │ │ │ * _H_o_w_ _t_o_ _c_r_e_a_t_e_ _P_D_F_ _f_i_l_e_s │ │ │ │ │ * _H_o_w_ _t_o_ _o_v_e_r_r_i_d_e_ _t_e_m_p_l_a_t_e_s │ │ │ │ │ * _H_o_w_ _t_o_ _m_a_n_a_g_e_ _s_t_a_t_i_c_ _f_i_l_e_s_ _(_e_._g_._ _i_m_a_g_e_s_,_ _J_a_v_a_S_c_r_i_p_t_,_ _C_S_S_) │ │ │ │ │ * _H_o_w_ _t_o_ _d_e_p_l_o_y_ _s_t_a_t_i_c_ _f_i_l_e_s │ │ │ │ │ * _H_o_w_ _t_o_ _i_n_s_t_a_l_l_ _D_j_a_n_g_o_ _o_n_ _W_i_n_d_o_w_s │ │ │ │ │ * _H_o_w_ _t_o_ _c_r_e_a_t_e_ _d_a_t_a_b_a_s_e_ _m_i_g_r_a_t_i_o_n_s │ │ │ │ │ * _H_o_w_ _t_o_ _d_e_l_e_t_e_ _a_ _D_j_a_n_g_o_ _a_p_p_l_i_c_a_t_i_o_n │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ The _D_j_a_n_g_o_ _c_o_m_m_u_n_i_t_y_ _a_g_g_r_e_g_a_t_o_r, where we aggregate content from the global │ │ │ │ │ Django community. Many writers in the aggregator write this sort of how-to │ │ │ │ │ material. │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _A_s_y_n_c_h_r_o_n_o_u_s_ _s_u_p_p_o_r_t │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _a_u_t_h_e_n_t_i_c_a_t_e_ _u_s_i_n_g_ _R_E_M_O_T_E___U_S_E_R │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/initial-data.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to provide initial data for models — Django 5.1b1 documentation │ │ │ │ + How to provide initial data for models — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -159,15 +160,15 @@ │ │ │ │ you have fixture files with the same name in different applications, you │ │ │ │ will be unable to distinguish between them in your loaddata commands. │ │ │ │ The easiest way to avoid this problem is by namespacing your fixture │ │ │ │ files. That is, by putting them inside a directory named for their │ │ │ │ application, as in the relative path example above.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    Fixtures are also used by the testing framework to help set up a consistent test environment.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -191,47 +192,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to manage error reporting

    │ │ │ │ + title="capitolo precedente">How to manage error reporting

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to integrate Django with a legacy database

    │ │ │ │ + title="capitolo successivo">How to integrate Django with a legacy database

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo pprroovviiddee iinniittiiaall ddaattaa ffoorr mmooddeellss_?¶ ************ │ │ │ │ │ It’s sometimes useful to prepopulate your database with hard-coded data when │ │ │ │ │ you’re first setting up an app. You can provide initial data with migrations or │ │ │ │ │ fixtures. │ │ │ │ │ ********** PPrroovviiddee iinniittiiaall ddaattaa wwiitthh mmiiggrraattiioonnss_?¶ ********** │ │ │ │ │ @@ -67,24 +67,24 @@ │ │ │ │ │ Namespace your fixture files │ │ │ │ │ Django will use the first fixture file it finds whose name matches, so if you │ │ │ │ │ have fixture files with the same name in different applications, you will be │ │ │ │ │ unable to distinguish between them in your loaddata commands. The easiest way │ │ │ │ │ to avoid this problem is by nnaammeessppaacciinngg your fixture files. That is, by putting │ │ │ │ │ them inside a directory named for their application, as in the relative path │ │ │ │ │ example above. │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ Fixtures are also used by the _t_e_s_t_i_n_g_ _f_r_a_m_e_w_o_r_k to help set up a consistent │ │ │ │ │ test environment. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _p_r_o_v_i_d_e_ _i_n_i_t_i_a_l_ _d_a_t_a_ _f_o_r_ _m_o_d_e_l_s │ │ │ │ │ o _P_r_o_v_i_d_e_ _i_n_i_t_i_a_l_ _d_a_t_a_ _w_i_t_h_ _m_i_g_r_a_t_i_o_n_s │ │ │ │ │ o _P_r_o_v_i_d_e_ _d_a_t_a_ _w_i_t_h_ _f_i_x_t_u_r_e_s │ │ │ │ │ # _T_e_l_l_ _D_j_a_n_g_o_ _w_h_e_r_e_ _t_o_ _l_o_o_k_ _f_o_r_ _f_i_x_t_u_r_e_ _f_i_l_e_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _m_a_n_a_g_e_ _e_r_r_o_r_ _r_e_p_o_r_t_i_n_g │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _i_n_t_e_g_r_a_t_e_ _D_j_a_n_g_o_ _w_i_t_h_ _a_ _l_e_g_a_c_y_ _d_a_t_a_b_a_s_e │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/legacy-databases.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to integrate Django with a legacy database — Django 5.1b1 documentation │ │ │ │ + How to integrate Django with a legacy database — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -171,47 +172,47 @@ │ │ │ │
  • Test and tweak
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to provide initial data for models

    │ │ │ │ + title="capitolo precedente">How to provide initial data for models

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to configure and use logging

    │ │ │ │ + title="capitolo successivo">How to configure and use logging

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo iinntteeggrraattee DDjjaannggoo wwiitthh aa lleeggaaccyy ddaattaabbaassee_?¶ ************ │ │ │ │ │ While Django is best suited for developing new applications, it’s quite │ │ │ │ │ possible to integrate it into legacy databases. Django includes a couple of │ │ │ │ │ utilities to automate as much of this process as possible. │ │ │ │ │ This document assumes you know the Django basics, as covered in the _t_u_t_o_r_i_a_l. │ │ │ │ │ @@ -54,16 +54,16 @@ │ │ │ │ │ the models file accordingly. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _i_n_t_e_g_r_a_t_e_ _D_j_a_n_g_o_ _w_i_t_h_ _a_ _l_e_g_a_c_y_ _d_a_t_a_b_a_s_e │ │ │ │ │ o _G_i_v_e_ _D_j_a_n_g_o_ _y_o_u_r_ _d_a_t_a_b_a_s_e_ _p_a_r_a_m_e_t_e_r_s │ │ │ │ │ o _A_u_t_o_-_g_e_n_e_r_a_t_e_ _t_h_e_ _m_o_d_e_l_s │ │ │ │ │ o _I_n_s_t_a_l_l_ _t_h_e_ _c_o_r_e_ _D_j_a_n_g_o_ _t_a_b_l_e_s │ │ │ │ │ o _T_e_s_t_ _a_n_d_ _t_w_e_a_k │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _p_r_o_v_i_d_e_ _i_n_i_t_i_a_l_ _d_a_t_a_ _f_o_r_ _m_o_d_e_l_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_o_n_f_i_g_u_r_e_ _a_n_d_ _u_s_e_ _l_o_g_g_i_n_g │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/logging.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to configure and use logging — Django 5.1b1 documentation │ │ │ │ + How to configure and use logging — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,38 +54,38 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    How to configure and use logging

    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │ │ │ │ │
    │ │ │ │

    Django provides a working default logging configuration that is readily extended.

    │ │ │ │
    │ │ │ │ @@ -121,15 +122,15 @@ │ │ │ │

    The WARNING level used in the example above is one of several │ │ │ │ logging severity levels: DEBUG, │ │ │ │ INFO, WARNING, ERROR, CRITICAL. So, another example might be:

    │ │ │ │
    logger.critical("Payment system is not responding")
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Important

    │ │ │ │ +

    Importante

    │ │ │ │

    Records with a level lower than WARNING will not appear in the console │ │ │ │ by default. Changing this behavior requires additional configuration.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Customize logging configuration

    │ │ │ │

    Although Django’s logging configuration works out of the box, you can control │ │ │ │ @@ -394,47 +395,47 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to integrate Django with a legacy database

    │ │ │ │ + title="capitolo precedente">How to integrate Django with a legacy database

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to create CSV output

    │ │ │ │ + title="capitolo successivo">How to create CSV output

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,12 +1,12 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ccoonnffiigguurree aanndd uussee llooggggiinngg_?¶ ************ │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ * _D_j_a_n_g_o_ _l_o_g_g_i_n_g_ _r_e_f_e_r_e_n_c_e │ │ │ │ │ * _D_j_a_n_g_o_ _l_o_g_g_i_n_g_ _o_v_e_r_v_i_e_w │ │ │ │ │ Django provides a working _d_e_f_a_u_l_t_ _l_o_g_g_i_n_g_ _c_o_n_f_i_g_u_r_a_t_i_o_n that is readily │ │ │ │ │ extended. │ │ │ │ │ ********** MMaakkee aa bbaassiicc llooggggiinngg ccaallll_?¶ ********** │ │ │ │ │ To send a log message from within your code, you place a logging call into it. │ │ │ │ │ Don’t be tempted to use logging calls in settings.py. │ │ │ │ │ @@ -30,15 +30,15 @@ │ │ │ │ │ logger.warning("Platform is running at risk") │ │ │ │ │ When this code is executed, a _L_o_g_R_e_c_o_r_d containing that message will be sent to │ │ │ │ │ the logger. If you’re using Django’s default logging configuration, the message │ │ │ │ │ will appear in the console. │ │ │ │ │ The WARNING level used in the example above is one of several _l_o_g_g_i_n_g_ _s_e_v_e_r_i_t_y │ │ │ │ │ _l_e_v_e_l_s: DEBUG, INFO, WARNING, ERROR, CRITICAL. So, another example might be: │ │ │ │ │ logger.critical("Payment system is not responding") │ │ │ │ │ -Important │ │ │ │ │ +Importante │ │ │ │ │ Records with a level lower than WARNING will not appear in the console by │ │ │ │ │ default. Changing this behavior requires additional configuration. │ │ │ │ │ ********** CCuussttoommiizzee llooggggiinngg ccoonnffiigguurraattiioonn_?¶ ********** │ │ │ │ │ Although Django’s logging configuration works out of the box, you can control │ │ │ │ │ exactly how your logs are sent to various destinations - to log files, external │ │ │ │ │ services, email and so on - with some additional configuration. │ │ │ │ │ You can configure: │ │ │ │ │ @@ -224,16 +224,16 @@ │ │ │ │ │ # _C_r_e_a_t_e_ _a_ _L_O_G_G_I_N_G_ _d_i_c_t_i_o_n_a_r_y │ │ │ │ │ # _C_o_n_f_i_g_u_r_e_ _a_ _h_a_n_d_l_e_r │ │ │ │ │ # _C_o_n_f_i_g_u_r_e_ _a_ _l_o_g_g_e_r_ _m_a_p_p_i_n_g │ │ │ │ │ # _C_o_n_f_i_g_u_r_e_ _a_ _f_o_r_m_a_t_t_e_r │ │ │ │ │ # _U_s_e_ _l_o_g_g_e_r_ _n_a_m_e_s_p_a_c_i_n_g │ │ │ │ │ # _U_s_i_n_g_ _l_o_g_g_e_r_ _h_i_e_r_a_r_c_h_i_e_s_ _a_n_d_ _p_r_o_p_a_g_a_t_i_o_n │ │ │ │ │ # _C_o_n_f_i_g_u_r_e_ _r_e_s_p_o_n_s_i_v_e_ _l_o_g_g_i_n_g │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _i_n_t_e_g_r_a_t_e_ _D_j_a_n_g_o_ _w_i_t_h_ _a_ _l_e_g_a_c_y_ _d_a_t_a_b_a_s_e │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_r_e_a_t_e_ _C_S_V_ _o_u_t_p_u_t │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/outputting-csv.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to create CSV output — Django 5.1b1 documentation │ │ │ │ + How to create CSV output — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -111,15 +112,15 @@ │ │ │ │
      │ │ │ │
    • The response gets a special MIME type, text/csv. This tells │ │ │ │ browsers that the document is a CSV file, rather than an HTML file. If │ │ │ │ you leave this off, browsers will probably interpret the output as HTML, │ │ │ │ which will result in ugly, scary gobbledygook in the browser window.

    • │ │ │ │
    • The response gets an additional Content-Disposition header, which │ │ │ │ contains the name of the CSV file. This filename is arbitrary; call it │ │ │ │ -whatever you want. It’ll be used by browsers in the “Save as…” dialog, etc.

    • │ │ │ │ +whatever you want. It’ll be used by browsers in the «Save as…» dialog, etc.

      │ │ │ │
    • You can hook into the CSV-generation API by passing response as the first │ │ │ │ argument to csv.writer. The csv.writer function expects a file-like │ │ │ │ object, and HttpResponse objects fit the bill.

    • │ │ │ │
    • For each row in your CSV file, call writer.writerow, passing it an │ │ │ │ iterable.

    • │ │ │ │
    • The CSV module takes care of quoting for you, so you don’t have to worry │ │ │ │ about escaping strings with quotes or commas in them. Pass writerow() │ │ │ │ @@ -241,47 +242,47 @@ │ │ │ │

    • Other text-based formats
    • │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to configure and use logging

    │ │ │ │ + title="capitolo precedente">How to configure and use logging

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to create PDF files

    │ │ │ │ + title="capitolo successivo">How to create PDF files

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ccrreeaattee CCSSVV oouuttppuutt_?¶ ************ │ │ │ │ │ This document explains how to output CSV (Comma Separated Values) dynamically │ │ │ │ │ using Django views. To do this, you can either use the Python CSV library or │ │ │ │ │ the Django template system. │ │ │ │ │ ********** UUssiinngg tthhee PPyytthhoonn CCSSVV lliibbrraarryy_?¶ ********** │ │ │ │ │ @@ -32,15 +32,15 @@ │ │ │ │ │ mention: │ │ │ │ │ * The response gets a special MIME type, tteexxtt//ccssvv. This tells browsers that │ │ │ │ │ the document is a CSV file, rather than an HTML file. If you leave this │ │ │ │ │ off, browsers will probably interpret the output as HTML, which will │ │ │ │ │ result in ugly, scary gobbledygook in the browser window. │ │ │ │ │ * The response gets an additional Content-Disposition header, which │ │ │ │ │ contains the name of the CSV file. This filename is arbitrary; call it │ │ │ │ │ - whatever you want. It’ll be used by browsers in the “Save as…” dialog, │ │ │ │ │ + whatever you want. It’ll be used by browsers in the «Save as…» dialog, │ │ │ │ │ etc. │ │ │ │ │ * You can hook into the CSV-generation API by passing response as the first │ │ │ │ │ argument to csv.writer. The csv.writer function expects a file-like │ │ │ │ │ object, and _H_t_t_p_R_e_s_p_o_n_s_e objects fit the bill. │ │ │ │ │ * For each row in your CSV file, call writer.writerow, passing it an │ │ │ │ │ _i_t_e_r_a_b_l_e. │ │ │ │ │ * The CSV module takes care of quoting for you, so you don’t have to worry │ │ │ │ │ @@ -130,16 +130,16 @@ │ │ │ │ │ arbitrary binary data; see _H_o_w_ _t_o_ _c_r_e_a_t_e_ _P_D_F_ _f_i_l_e_s for an example. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _c_r_e_a_t_e_ _C_S_V_ _o_u_t_p_u_t │ │ │ │ │ o _U_s_i_n_g_ _t_h_e_ _P_y_t_h_o_n_ _C_S_V_ _l_i_b_r_a_r_y │ │ │ │ │ # _S_t_r_e_a_m_i_n_g_ _l_a_r_g_e_ _C_S_V_ _f_i_l_e_s │ │ │ │ │ o _U_s_i_n_g_ _t_h_e_ _t_e_m_p_l_a_t_e_ _s_y_s_t_e_m │ │ │ │ │ o _O_t_h_e_r_ _t_e_x_t_-_b_a_s_e_d_ _f_o_r_m_a_t_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_o_n_f_i_g_u_r_e_ _a_n_d_ _u_s_e_ _l_o_g_g_i_n_g │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_r_e_a_t_e_ _P_D_F_ _f_i_l_e_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/outputting-pdf.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to create PDF files — Django 5.1b1 documentation │ │ │ │ + How to create PDF files — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -66,25 +67,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -128,15 +129,15 @@ │ │ │ │

    If that command doesn’t raise any errors, the installation worked.

    │ │ │ │ │ │ │ │
    │ │ │ │

    Write your view

    │ │ │ │

    The key to generating PDFs dynamically with Django is that the ReportLab API │ │ │ │ acts on file-like objects, and Django’s FileResponse │ │ │ │ objects accept file-like objects.

    │ │ │ │ -

    Here’s a “Hello World” example:

    │ │ │ │ +

    Here’s a «Hello World» example:

    │ │ │ │
    import io
    │ │ │ │  from django.http import FileResponse
    │ │ │ │  from reportlab.pdfgen import canvas
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  def some_view(request):
    │ │ │ │      # Create a file-like buffer to receive PDF data.
    │ │ │ │ @@ -169,39 +170,39 @@
    │ │ │ │  
  • When as_attachment=True is passed to FileResponse, it sets the │ │ │ │ appropriate Content-Disposition header and that tells web browsers to │ │ │ │ pop-up a dialog box prompting/confirming how to handle the document even if a │ │ │ │ default is set on the machine. If the as_attachment parameter is omitted, │ │ │ │ browsers will handle the PDF using whatever program/plugin they’ve been │ │ │ │ configured to use for PDFs.

  • │ │ │ │
  • You can provide an arbitrary filename parameter. It’ll be used by browsers │ │ │ │ -in the “Save as…” dialog.

  • │ │ │ │ +in the «Save as…» dialog.

    │ │ │ │
  • You can hook into the ReportLab API: The same buffer passed as the first │ │ │ │ argument to canvas.Canvas can be fed to the │ │ │ │ FileResponse class.

  • │ │ │ │
  • Note that all subsequent PDF-generation methods are called on the PDF │ │ │ │ object (in this case, p) – not on buffer.

  • │ │ │ │
  • Finally, it’s important to call showPage() and save() on the PDF │ │ │ │ file.

  • │ │ │ │ │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    ReportLab is not thread-safe. Some of our users have reported odd issues │ │ │ │ with building PDF-generating Django views that are accessed by many people │ │ │ │ at the same time.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Other formats

    │ │ │ │

    Notice that there isn’t a lot in these examples that’s PDF-specific – just the │ │ │ │ bits using reportlab. You can use a similar technique to generate any │ │ │ │ arbitrary format that you can find a Python library for. Also see │ │ │ │ How to create CSV output for another example and some techniques you can use │ │ │ │ when generated text-based formats.

    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    Django Packages provides a comparison of packages that help generate PDF files │ │ │ │ from Django.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -223,47 +224,47 @@ │ │ │ │
  • Other formats
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to create CSV output

    │ │ │ │ + title="capitolo precedente">How to create CSV output

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to override templates

    │ │ │ │ + title="capitolo successivo">How to override templates

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ccrreeaattee PPDDFF ffiilleess_?¶ ************ │ │ │ │ │ This document explains how to output PDF files dynamically using Django views. │ │ │ │ │ This is made possible by the excellent, open-source _R_e_p_o_r_t_L_a_b Python PDF │ │ │ │ │ library. │ │ │ │ │ The advantage of generating PDF files dynamically is that you can create │ │ │ │ │ @@ -20,15 +20,15 @@ │ │ │ │ │ Test your installation by importing it in the Python interactive interpreter: │ │ │ │ │ >>> import reportlab │ │ │ │ │ If that command doesn’t raise any errors, the installation worked. │ │ │ │ │ ********** WWrriittee yyoouurr vviieeww_?¶ ********** │ │ │ │ │ The key to generating PDFs dynamically with Django is that the ReportLab API │ │ │ │ │ acts on file-like objects, and Django’s _F_i_l_e_R_e_s_p_o_n_s_e objects accept file-like │ │ │ │ │ objects. │ │ │ │ │ -Here’s a “Hello World” example: │ │ │ │ │ +Here’s a «Hello World» example: │ │ │ │ │ import io │ │ │ │ │ from django.http import FileResponse │ │ │ │ │ from reportlab.pdfgen import canvas │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ def some_view(request): │ │ │ │ │ # Create a file-like buffer to receive PDF data. │ │ │ │ │ @@ -58,40 +58,40 @@ │ │ │ │ │ * When as_attachment=True is passed to FileResponse, it sets the │ │ │ │ │ appropriate Content-Disposition header and that tells web browsers to │ │ │ │ │ pop-up a dialog box prompting/confirming how to handle the document even │ │ │ │ │ if a default is set on the machine. If the as_attachment parameter is │ │ │ │ │ omitted, browsers will handle the PDF using whatever program/plugin │ │ │ │ │ they’ve been configured to use for PDFs. │ │ │ │ │ * You can provide an arbitrary filename parameter. It’ll be used by │ │ │ │ │ - browsers in the “Save as…” dialog. │ │ │ │ │ + browsers in the «Save as…» dialog. │ │ │ │ │ * You can hook into the ReportLab API: The same buffer passed as the first │ │ │ │ │ argument to canvas.Canvas can be fed to the _F_i_l_e_R_e_s_p_o_n_s_e class. │ │ │ │ │ * Note that all subsequent PDF-generation methods are called on the PDF │ │ │ │ │ object (in this case, p) – not on buffer. │ │ │ │ │ * Finally, it’s important to call showPage() and save() on the PDF file. │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ ReportLab is not thread-safe. Some of our users have reported odd issues with │ │ │ │ │ building PDF-generating Django views that are accessed by many people at the │ │ │ │ │ same time. │ │ │ │ │ ********** OOtthheerr ffoorrmmaattss_?¶ ********** │ │ │ │ │ Notice that there isn’t a lot in these examples that’s PDF-specific – just the │ │ │ │ │ bits using reportlab. You can use a similar technique to generate any arbitrary │ │ │ │ │ format that you can find a Python library for. Also see _H_o_w_ _t_o_ _c_r_e_a_t_e_ _C_S_V │ │ │ │ │ _o_u_t_p_u_t for another example and some techniques you can use when generated text- │ │ │ │ │ based formats. │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ Django Packages provides a _c_o_m_p_a_r_i_s_o_n_ _o_f_ _p_a_c_k_a_g_e_s that help generate PDF files │ │ │ │ │ from Django. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _c_r_e_a_t_e_ _P_D_F_ _f_i_l_e_s │ │ │ │ │ o _I_n_s_t_a_l_l_ _R_e_p_o_r_t_L_a_b │ │ │ │ │ o _W_r_i_t_e_ _y_o_u_r_ _v_i_e_w │ │ │ │ │ o _O_t_h_e_r_ _f_o_r_m_a_t_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_r_e_a_t_e_ _C_S_V_ _o_u_t_p_u_t │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _o_v_e_r_r_i_d_e_ _t_e_m_p_l_a_t_e_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/overriding-templates.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to override templates — Django 5.1b1 documentation │ │ │ │ + How to override templates — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -84,15 +85,15 @@ │ │ │ │ such as django.contrib.admin. You can either put template overrides in your │ │ │ │ project’s templates directory or in an application’s templates directory.

    │ │ │ │

    If you have app and project templates directories that both contain overrides, │ │ │ │ the default Django template loader will try to load the template from the │ │ │ │ project-level directory first. In other words, DIRS │ │ │ │ is searched before APP_DIRS.

    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    Read Overriding built-in widget templates if you’re looking to │ │ │ │ do that.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Overriding from the project’s templates directory

    │ │ │ │

    First, we’ll explore overriding templates by creating replacement templates in │ │ │ │ your project’s templates directory.

    │ │ │ │ @@ -223,47 +224,47 @@ │ │ │ │
  • Extending an overridden template
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to create PDF files

    │ │ │ │ + title="capitolo precedente">How to create PDF files

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to manage static files (e.g. images, JavaScript, CSS)

    │ │ │ │ + title="capitolo successivo">How to manage static files (e.g. images, JavaScript, CSS)

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,20 +1,20 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo oovveerrrriiddee tteemmppllaatteess_?¶ ************ │ │ │ │ │ In your project, you might want to override a template in another Django │ │ │ │ │ application, whether it be a third-party application or a contrib application │ │ │ │ │ such as django.contrib.admin. You can either put template overrides in your │ │ │ │ │ project’s templates directory or in an application’s templates directory. │ │ │ │ │ If you have app and project templates directories that both contain overrides, │ │ │ │ │ the default Django template loader will try to load the template from the │ │ │ │ │ project-level directory first. In other words, _D_I_R_S is searched before │ │ │ │ │ _A_P_P___D_I_R_S. │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ Read _O_v_e_r_r_i_d_i_n_g_ _b_u_i_l_t_-_i_n_ _w_i_d_g_e_t_ _t_e_m_p_l_a_t_e_s if you’re looking to do that. │ │ │ │ │ ********** OOvveerrrriiddiinngg ffrroomm tthhee pprroojjeecctt?’ss tteemmppllaatteess ddiirreeccttoorryy_?¶ ********** │ │ │ │ │ First, we’ll explore overriding templates by creating replacement templates in │ │ │ │ │ your project’s templates directory. │ │ │ │ │ Let’s say you’re trying to override the templates for a third-party application │ │ │ │ │ called blog, which provides the templates blog/post.html and blog/list.html. │ │ │ │ │ The relevant settings for your project would look like: │ │ │ │ │ @@ -101,16 +101,16 @@ │ │ │ │ │ extends tag. Combined with block.super it is a powerful technique to make small │ │ │ │ │ customizations. │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _o_v_e_r_r_i_d_e_ _t_e_m_p_l_a_t_e_s │ │ │ │ │ o _O_v_e_r_r_i_d_i_n_g_ _f_r_o_m_ _t_h_e_ _p_r_o_j_e_c_t_’_s_ _t_e_m_p_l_a_t_e_s_ _d_i_r_e_c_t_o_r_y │ │ │ │ │ o _O_v_e_r_r_i_d_i_n_g_ _f_r_o_m_ _a_n_ _a_p_p_’_s_ _t_e_m_p_l_a_t_e_ _d_i_r_e_c_t_o_r_y │ │ │ │ │ o _E_x_t_e_n_d_i_n_g_ _a_n_ _o_v_e_r_r_i_d_d_e_n_ _t_e_m_p_l_a_t_e │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_r_e_a_t_e_ _P_D_F_ _f_i_l_e_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _m_a_n_a_g_e_ _s_t_a_t_i_c_ _f_i_l_e_s_ _(_e_._g_._ _i_m_a_g_e_s_,_ _J_a_v_a_S_c_r_i_p_t_,_ _C_S_S_) │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/static-files/deployment.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to deploy static files — Django 5.1b1 documentation │ │ │ │ + How to deploy static files — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,38 +54,38 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    How to deploy static files

    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    For an introduction to the use of django.contrib.staticfiles, see │ │ │ │ How to manage static files (e.g. images, JavaScript, CSS).

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Serving static files in production

    │ │ │ │

    The basic outline of putting static files into production consists of two │ │ │ │ steps: run the collectstatic command when static files change, then │ │ │ │ @@ -195,47 +196,47 @@ │ │ │ │

  • Learn more
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to manage static files (e.g. images, JavaScript, CSS)

    │ │ │ │ + title="capitolo precedente">How to manage static files (e.g. images, JavaScript, CSS)

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to install Django on Windows

    │ │ │ │ + title="capitolo successivo">How to install Django on Windows

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,12 +1,12 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ddeeppllooyy ssttaattiicc ffiilleess_?¶ ************ │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ For an introduction to the use of _d_j_a_n_g_o_._c_o_n_t_r_i_b_._s_t_a_t_i_c_f_i_l_e_s, see _H_o_w_ _t_o_ _m_a_n_a_g_e │ │ │ │ │ _s_t_a_t_i_c_ _f_i_l_e_s_ _(_e_._g_._ _i_m_a_g_e_s_,_ _J_a_v_a_S_c_r_i_p_t_,_ _C_S_S_). │ │ │ │ │ ********** SSeerrvviinngg ssttaattiicc ffiilleess iinn pprroodduuccttiioonn_?¶ ********** │ │ │ │ │ The basic outline of putting static files into production consists of two │ │ │ │ │ steps: run the _c_o_l_l_e_c_t_s_t_a_t_i_c command when static files change, then arrange for │ │ │ │ │ the collected static files directory (_S_T_A_T_I_C___R_O_O_T) to be moved to the static │ │ │ │ │ file server and served. Depending the staticfiles _S_T_O_R_A_G_E_S alias, files may │ │ │ │ │ @@ -72,16 +72,16 @@ │ │ │ │ │ ******** _TT_aa_bb_ll_ee_ _oo_ff_ _CC_oo_nn_tt_ee_nn_tt_ss ******** │ │ │ │ │ * _H_o_w_ _t_o_ _d_e_p_l_o_y_ _s_t_a_t_i_c_ _f_i_l_e_s │ │ │ │ │ o _S_e_r_v_i_n_g_ _s_t_a_t_i_c_ _f_i_l_e_s_ _i_n_ _p_r_o_d_u_c_t_i_o_n │ │ │ │ │ # _S_e_r_v_i_n_g_ _t_h_e_ _s_i_t_e_ _a_n_d_ _y_o_u_r_ _s_t_a_t_i_c_ _f_i_l_e_s_ _f_r_o_m_ _t_h_e_ _s_a_m_e_ _s_e_r_v_e_r │ │ │ │ │ # _S_e_r_v_i_n_g_ _s_t_a_t_i_c_ _f_i_l_e_s_ _f_r_o_m_ _a_ _d_e_d_i_c_a_t_e_d_ _s_e_r_v_e_r │ │ │ │ │ # _S_e_r_v_i_n_g_ _s_t_a_t_i_c_ _f_i_l_e_s_ _f_r_o_m_ _a_ _c_l_o_u_d_ _s_e_r_v_i_c_e_ _o_r_ _C_D_N │ │ │ │ │ o _L_e_a_r_n_ _m_o_r_e │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _m_a_n_a_g_e_ _s_t_a_t_i_c_ _f_i_l_e_s_ _(_e_._g_._ _i_m_a_g_e_s_,_ _J_a_v_a_S_c_r_i_p_t_,_ _C_S_S_) │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _i_n_s_t_a_l_l_ _D_j_a_n_g_o_ _o_n_ _W_i_n_d_o_w_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/static-files/index.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to manage static files (e.g. images, JavaScript, CSS) — Django 5.1b1 documentation │ │ │ │ + How to manage static files (e.g. images, JavaScript, CSS) — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,38 +54,38 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    How to manage static files (e.g. images, JavaScript, CSS)

    │ │ │ │

    Websites generally need to serve additional files such as images, JavaScript, │ │ │ │ -or CSS. In Django, we refer to these files as “static files”. Django provides │ │ │ │ +or CSS. In Django, we refer to these files as «static files». Django provides │ │ │ │ django.contrib.staticfiles to help you manage them.

    │ │ │ │

    This page describes how you can serve these static files.

    │ │ │ │
    │ │ │ │

    Configuring static files

    │ │ │ │
      │ │ │ │
    1. Make sure that django.contrib.staticfiles is included in your │ │ │ │ INSTALLED_APPS.

    2. │ │ │ │ @@ -159,15 +160,15 @@ │ │ │ │ │ │ │ │ urlpatterns = [ │ │ │ │ # ... the rest of your URLconf goes here ... │ │ │ │ ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    This helper function works only in debug mode and only if │ │ │ │ the given prefix is local (e.g. static/) and not a URL (e.g. │ │ │ │ http://static.example.com/).

    │ │ │ │

    Also this helper function only serves the actual STATIC_ROOT │ │ │ │ folder; it doesn’t perform static files discovery like │ │ │ │ django.contrib.staticfiles.

    │ │ │ │

    Finally, static files are served via a wrapper at the WSGI application │ │ │ │ @@ -188,15 +189,15 @@ │ │ │ │ │ │ │ │ urlpatterns = [ │ │ │ │ # ... the rest of your URLconf goes here ... │ │ │ │ ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) │ │ │ │

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    This helper function works only in debug mode and only if │ │ │ │ the given prefix is local (e.g. media/) and not a URL (e.g. │ │ │ │ http://media.example.com/).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Testing

    │ │ │ │ @@ -268,47 +269,47 @@ │ │ │ │
  • Learn more
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to override templates

    │ │ │ │ + title="capitolo precedente">How to override templates

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to deploy static files

    │ │ │ │ + title="capitolo successivo">How to deploy static files

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo mmaannaaggee ssttaattiicc ffiilleess ((ee..gg.. iimmaaggeess,, JJaavvaaSSccrriipptt,, CCSSSS))_?¶ ************ │ │ │ │ │ Websites generally need to serve additional files such as images, JavaScript, │ │ │ │ │ -or CSS. In Django, we refer to these files as “static files”. Django provides │ │ │ │ │ +or CSS. In Django, we refer to these files as «static files». Django provides │ │ │ │ │ _d_j_a_n_g_o_._c_o_n_t_r_i_b_._s_t_a_t_i_c_f_i_l_e_s to help you manage them. │ │ │ │ │ This page describes how you can serve these static files. │ │ │ │ │ ********** CCoonnffiigguurriinngg ssttaattiicc ffiilleess_?¶ ********** │ │ │ │ │ 1. Make sure that django.contrib.staticfiles is included in your │ │ │ │ │ _I_N_S_T_A_L_L_E_D___A_P_P_S. │ │ │ │ │ 2. In your settings file, define _S_T_A_T_I_C___U_R_L, for example: │ │ │ │ │ STATIC_URL = "static/" │ │ │ │ │ @@ -58,15 +58,15 @@ │ │ │ │ │ adding the following snippet to your urls.py: │ │ │ │ │ from django.conf import settings │ │ │ │ │ from django.conf.urls.static import static │ │ │ │ │ │ │ │ │ │ urlpatterns = [ │ │ │ │ │ # ... the rest of your URLconf goes here ... │ │ │ │ │ ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ This helper function works only in debug mode and only if the given prefix is │ │ │ │ │ local (e.g. static/) and not a URL (e.g. http://static.example.com/). │ │ │ │ │ Also this helper function only serves the actual _S_T_A_T_I_C___R_O_O_T folder; it doesn’t │ │ │ │ │ perform static files discovery like _d_j_a_n_g_o_._c_o_n_t_r_i_b_._s_t_a_t_i_c_f_i_l_e_s. │ │ │ │ │ Finally, static files are served via a wrapper at the WSGI application layer. │ │ │ │ │ As a consequence, static files requests do not pass through the normal │ │ │ │ │ _m_i_d_d_l_e_w_a_r_e_ _c_h_a_i_n. │ │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │ │ the following snippet to your _R_O_O_T___U_R_L_C_O_N_F: │ │ │ │ │ from django.conf import settings │ │ │ │ │ from django.conf.urls.static import static │ │ │ │ │ │ │ │ │ │ urlpatterns = [ │ │ │ │ │ # ... the rest of your URLconf goes here ... │ │ │ │ │ ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) │ │ │ │ │ -Note │ │ │ │ │ +Nota │ │ │ │ │ This helper function works only in debug mode and only if the given prefix is │ │ │ │ │ local (e.g. media/) and not a URL (e.g. http://media.example.com/). │ │ │ │ │ ********** TTeessttiinngg_?¶ ********** │ │ │ │ │ When running tests that use actual HTTP requests instead of the built-in │ │ │ │ │ testing client (i.e. when using the built-in _L_i_v_e_S_e_r_v_e_r_T_e_s_t_C_a_s_e) the static │ │ │ │ │ assets need to be served along the rest of the content so the test environment │ │ │ │ │ reproduces the real one as faithfully as possible, but LiveServerTestCase has │ │ │ │ │ @@ -120,16 +120,16 @@ │ │ │ │ │ * _H_o_w_ _t_o_ _m_a_n_a_g_e_ _s_t_a_t_i_c_ _f_i_l_e_s_ _(_e_._g_._ _i_m_a_g_e_s_,_ _J_a_v_a_S_c_r_i_p_t_,_ _C_S_S_) │ │ │ │ │ o _C_o_n_f_i_g_u_r_i_n_g_ _s_t_a_t_i_c_ _f_i_l_e_s │ │ │ │ │ o _S_e_r_v_i_n_g_ _s_t_a_t_i_c_ _f_i_l_e_s_ _d_u_r_i_n_g_ _d_e_v_e_l_o_p_m_e_n_t │ │ │ │ │ o _S_e_r_v_i_n_g_ _f_i_l_e_s_ _u_p_l_o_a_d_e_d_ _b_y_ _a_ _u_s_e_r_ _d_u_r_i_n_g_ _d_e_v_e_l_o_p_m_e_n_t │ │ │ │ │ o _T_e_s_t_i_n_g │ │ │ │ │ o _D_e_p_l_o_y_m_e_n_t │ │ │ │ │ o _L_e_a_r_n_ _m_o_r_e │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _o_v_e_r_r_i_d_e_ _t_e_m_p_l_a_t_e_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _d_e_p_l_o_y_ _s_t_a_t_i_c_ _f_i_l_e_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/upgrade-version.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to upgrade Django to a newer version — Django 5.1b1 documentation │ │ │ │ + How to upgrade Django to a newer version — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -66,25 +67,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -107,15 +108,15 @@ │ │ │ │
    │ │ │ │

    Required Reading

    │ │ │ │

    If it’s your first time doing an upgrade, it is useful to read the guide │ │ │ │ on the different release processes.

    │ │ │ │

    Afterward, you should familiarize yourself with the changes that were made in │ │ │ │ the new Django version(s):

    │ │ │ │
      │ │ │ │ -
    • Read the release notes for each ‘final’ release from │ │ │ │ +

    • Read the release notes for each “final” release from │ │ │ │ the one after your current Django version, up to and including the version to │ │ │ │ which you plan to upgrade.

    • │ │ │ │
    • Look at the deprecation timeline for the │ │ │ │ relevant versions.

    • │ │ │ │
    │ │ │ │

    Pay particular attention to backwards incompatible changes to get a clear idea │ │ │ │ of what will be needed for a successful upgrade.

    │ │ │ │ @@ -256,47 +257,47 @@ │ │ │ │
  • Deployment
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Deployment checklist

    │ │ │ │ + title="capitolo precedente">Deployment checklist

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to manage error reporting

    │ │ │ │ + title="capitolo successivo">How to manage error reporting

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo uuppggrraaddee DDjjaannggoo ttoo aa nneewweerr vveerrssiioonn_?¶ ************ │ │ │ │ │ While it can be a complex process at times, upgrading to the latest Django │ │ │ │ │ version has several benefits: │ │ │ │ │ * New features and improvements are added. │ │ │ │ │ * Bugs are fixed. │ │ │ │ │ @@ -13,15 +13,15 @@ │ │ │ │ │ Here are some things to consider to help make your upgrade process as smooth as │ │ │ │ │ possible. │ │ │ │ │ ********** RReeqquuiirreedd RReeaaddiinngg_?¶ ********** │ │ │ │ │ If it’s your first time doing an upgrade, it is useful to read the _g_u_i_d_e_ _o_n_ _t_h_e │ │ │ │ │ _d_i_f_f_e_r_e_n_t_ _r_e_l_e_a_s_e_ _p_r_o_c_e_s_s_e_s. │ │ │ │ │ Afterward, you should familiarize yourself with the changes that were made in │ │ │ │ │ the new Django version(s): │ │ │ │ │ - * Read the _r_e_l_e_a_s_e_ _n_o_t_e_s for each ‘final’ release from the one after your │ │ │ │ │ + * Read the _r_e_l_e_a_s_e_ _n_o_t_e_s for each “final” release from the one after your │ │ │ │ │ current Django version, up to and including the version to which you plan │ │ │ │ │ to upgrade. │ │ │ │ │ * Look at the _d_e_p_r_e_c_a_t_i_o_n_ _t_i_m_e_l_i_n_e for the relevant versions. │ │ │ │ │ Pay particular attention to backwards incompatible changes to get a clear idea │ │ │ │ │ of what will be needed for a successful upgrade. │ │ │ │ │ If you’re upgrading through more than one feature version (e.g. 2.0 to 2.2), │ │ │ │ │ it’s usually easier to upgrade through each feature release incrementally (2.0 │ │ │ │ │ @@ -90,16 +90,16 @@ │ │ │ │ │ * _H_o_w_ _t_o_ _u_p_g_r_a_d_e_ _D_j_a_n_g_o_ _t_o_ _a_ _n_e_w_e_r_ _v_e_r_s_i_o_n │ │ │ │ │ o _R_e_q_u_i_r_e_d_ _R_e_a_d_i_n_g │ │ │ │ │ o _D_e_p_e_n_d_e_n_c_i_e_s │ │ │ │ │ o _R_e_s_o_l_v_i_n_g_ _d_e_p_r_e_c_a_t_i_o_n_ _w_a_r_n_i_n_g_s │ │ │ │ │ o _I_n_s_t_a_l_l_a_t_i_o_n │ │ │ │ │ o _T_e_s_t_i_n_g │ │ │ │ │ o _D_e_p_l_o_y_m_e_n_t │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _D_e_p_l_o_y_m_e_n_t_ _c_h_e_c_k_l_i_s_t │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _m_a_n_a_g_e_ _e_r_r_o_r_ _r_e_p_o_r_t_i_n_g │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/windows.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to install Django on Windows — Django 5.1b1 documentation │ │ │ │ + How to install Django on Windows — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -89,23 +90,23 @@ │ │ │ │ the Windows command prompt.

    │ │ │ │
    │ │ │ │

    Install Python

    │ │ │ │

    Django is a Python web framework, thus requiring Python to be installed on your │ │ │ │ machine. At the time of writing, Python 3.12 is the latest version.

    │ │ │ │

    To install Python on your machine go to https://www.python.org/downloads/. The │ │ │ │ website should offer you a download button for the latest Python version. │ │ │ │ -Download the executable installer and run it. Check the boxes next to “Install │ │ │ │ -launcher for all users (recommended)” then click “Install Now”.

    │ │ │ │ +Download the executable installer and run it. Check the boxes next to «Install │ │ │ │ +launcher for all users (recommended)» then click «Install Now».

    │ │ │ │

    After installation, open the command prompt and check that the Python version │ │ │ │ matches the version you installed by executing:

    │ │ │ │
    ...\> py --version
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    See also

    │ │ │ │ +

    Vedi anche

    │ │ │ │

    For more details, see Using Python on Windows documentation.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    About pip

    │ │ │ │

    pip is a package manager for Python and is included by default with the │ │ │ │ Python installer. It helps to install and uninstall Python packages │ │ │ │ @@ -122,20 +123,20 @@ │ │ │ │ environments which we will use for this guide.

    │ │ │ │

    To create a virtual environment for your project, open a new command prompt, │ │ │ │ navigate to the folder where you want to create your project and then enter the │ │ │ │ following:

    │ │ │ │
    ...\> py -m venv project-name
    │ │ │ │  
    │ │ │ │
    │ │ │ │ -

    This will create a folder called ‘project-name’ if it does not already exist │ │ │ │ +

    This will create a folder called “project-name” if it does not already exist │ │ │ │ and set up the virtual environment. To activate the environment, run:

    │ │ │ │
    ...\> project-name\Scripts\activate.bat
    │ │ │ │  
    │ │ │ │
    │ │ │ │ -

    The virtual environment will be activated and you’ll see “(project-name)” next │ │ │ │ +

    The virtual environment will be activated and you’ll see «(project-name)» next │ │ │ │ to the command prompt to designate that. Each time you start a new command │ │ │ │ prompt, you’ll need to activate the environment again.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Install Django

    │ │ │ │

    Django can be installed easily using pip within your virtual environment.

    │ │ │ │

    In the command prompt, ensure your virtual environment is active, and execute │ │ │ │ @@ -211,47 +212,47 @@ │ │ │ │

  • Common pitfalls
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to deploy static files

    │ │ │ │ + title="capitolo precedente">How to deploy static files

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to create database migrations

    │ │ │ │ + title="capitolo successivo">How to create database migrations

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo iinnssttaallll DDjjaannggoo oonn WWiinnddoowwss_?¶ ************ │ │ │ │ │ This document will guide you through installing Python 3.12 and Django on │ │ │ │ │ Windows. It also provides instructions for setting up a virtual environment, │ │ │ │ │ which makes it easier to work on Python projects. This is meant as a beginner’s │ │ │ │ │ guide for users working on Django projects and does not reflect how Django │ │ │ │ │ @@ -11,20 +11,20 @@ │ │ │ │ │ the steps would be similar. You will need to be familiar with using the Windows │ │ │ │ │ command prompt. │ │ │ │ │ ********** IInnssttaallll PPyytthhoonn_?¶ ********** │ │ │ │ │ Django is a Python web framework, thus requiring Python to be installed on your │ │ │ │ │ machine. At the time of writing, Python 3.12 is the latest version. │ │ │ │ │ To install Python on your machine go to _h_t_t_p_s_:_/_/_w_w_w_._p_y_t_h_o_n_._o_r_g_/_d_o_w_n_l_o_a_d_s_/. The │ │ │ │ │ website should offer you a download button for the latest Python version. │ │ │ │ │ -Download the executable installer and run it. Check the boxes next to “Install │ │ │ │ │ -launcher for all users (recommended)” then click “Install Now”. │ │ │ │ │ +Download the executable installer and run it. Check the boxes next to «Install │ │ │ │ │ +launcher for all users (recommended)» then click «Install Now». │ │ │ │ │ After installation, open the command prompt and check that the Python version │ │ │ │ │ matches the version you installed by executing: │ │ │ │ │ ...\> py --version │ │ │ │ │ -See also │ │ │ │ │ +Vedi anche │ │ │ │ │ For more details, see _U_s_i_n_g_ _P_y_t_h_o_n_ _o_n_ _W_i_n_d_o_w_s documentation. │ │ │ │ │ ********** AAbboouutt ppiipp_?¶ ********** │ │ │ │ │ _p_i_p is a package manager for Python and is included by default with the Python │ │ │ │ │ installer. It helps to install and uninstall Python packages (such as Django!). │ │ │ │ │ For the rest of the installation, we’ll use pip to install Python packages from │ │ │ │ │ the command line. │ │ │ │ │ ********** SSeettttiinngg uupp aa vviirrttuuaall eennvviirroonnmmeenntt_?¶ ********** │ │ │ │ │ @@ -33,18 +33,18 @@ │ │ │ │ │ the Python ecosystem, some of which are recommended in the _P_y_t_h_o_n │ │ │ │ │ _d_o_c_u_m_e_n_t_a_t_i_o_n. Python itself comes with _v_e_n_v for managing environments which we │ │ │ │ │ will use for this guide. │ │ │ │ │ To create a virtual environment for your project, open a new command prompt, │ │ │ │ │ navigate to the folder where you want to create your project and then enter the │ │ │ │ │ following: │ │ │ │ │ ...\> py -m venv project-name │ │ │ │ │ -This will create a folder called ‘project-name’ if it does not already exist │ │ │ │ │ +This will create a folder called “project-name” if it does not already exist │ │ │ │ │ and set up the virtual environment. To activate the environment, run: │ │ │ │ │ ...\> project-name\Scripts\activate.bat │ │ │ │ │ -The virtual environment will be activated and you’ll see “(project-name)” next │ │ │ │ │ +The virtual environment will be activated and you’ll see «(project-name)» next │ │ │ │ │ to the command prompt to designate that. Each time you start a new command │ │ │ │ │ prompt, you’ll need to activate the environment again. │ │ │ │ │ ********** IInnssttaallll DDjjaannggoo_?¶ ********** │ │ │ │ │ Django can be installed easily using pip within your virtual environment. │ │ │ │ │ In the command prompt, ensure your virtual environment is active, and execute │ │ │ │ │ the following command: │ │ │ │ │ ...\> py -m pip install Django │ │ │ │ │ @@ -85,16 +85,16 @@ │ │ │ │ │ * _H_o_w_ _t_o_ _i_n_s_t_a_l_l_ _D_j_a_n_g_o_ _o_n_ _W_i_n_d_o_w_s │ │ │ │ │ o _I_n_s_t_a_l_l_ _P_y_t_h_o_n │ │ │ │ │ o _A_b_o_u_t_ _p_i_p │ │ │ │ │ o _S_e_t_t_i_n_g_ _u_p_ _a_ _v_i_r_t_u_a_l_ _e_n_v_i_r_o_n_m_e_n_t │ │ │ │ │ o _I_n_s_t_a_l_l_ _D_j_a_n_g_o │ │ │ │ │ o _C_o_l_o_r_e_d_ _t_e_r_m_i_n_a_l_ _o_u_t_p_u_t │ │ │ │ │ o _C_o_m_m_o_n_ _p_i_t_f_a_l_l_s │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _d_e_p_l_o_y_ _s_t_a_t_i_c_ _f_i_l_e_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _c_r_e_a_t_e_ _d_a_t_a_b_a_s_e_ _m_i_g_r_a_t_i_o_n_s │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/howto/writing-migrations.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - How to create database migrations — Django 5.1b1 documentation │ │ │ │ + How to create database migrations — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -142,15 +143,15 @@ │ │ │ │
    │ │ │ │

    If your RunPython or RunSQL operation only affects one model, it’s good │ │ │ │ practice to pass model_name as a hint to make it as transparent as possible │ │ │ │ to the router. This is especially important for reusable and third-party apps.

    │ │ │ │ │ │ │ │
    │ │ │ │

    Migrations that add unique fields

    │ │ │ │ -

    Applying a “plain” migration that adds a unique non-nullable field to a table │ │ │ │ +

    Applying a «plain» migration that adds a unique non-nullable field to a table │ │ │ │ with existing rows will raise an error because the value used to populate │ │ │ │ existing rows is generated only once, thus breaking the unique constraint.

    │ │ │ │

    Therefore, the following steps should be taken. In this example, we’ll add a │ │ │ │ non-nullable UUIDField with a default value. Modify │ │ │ │ the respective field according to your needs.

    │ │ │ │
      │ │ │ │
    • Add the field on your model with default=uuid.uuid4 and unique=True │ │ │ │ @@ -311,15 +312,15 @@ │ │ │ │ dependencies = [ │ │ │ │ ("myapp", "0123_the_previous_migration"), │ │ │ │ ] │ │ │ │

    │ │ │ │
    │ │ │ │

    Usually this will be enough, but from time to time you may need to │ │ │ │ ensure that your migration runs before other migrations. This is │ │ │ │ -useful, for example, to make third-party apps’ migrations run after │ │ │ │ +useful, for example, to make third-party apps” migrations run after │ │ │ │ your AUTH_USER_MODEL replacement.

    │ │ │ │

    To achieve this, place all migrations that should depend on yours in │ │ │ │ the run_before attribute on your Migration class:

    │ │ │ │
    class Migration(migrations.Migration):
    │ │ │ │      ...
    │ │ │ │  
    │ │ │ │      run_before = [
    │ │ │ │ @@ -499,47 +500,47 @@
    │ │ │ │  
  • Changing an unmanaged model to managed
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    How to install Django on Windows

    │ │ │ │ + title="capitolo precedente">How to install Django on Windows

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    How to delete a Django application

    │ │ │ │ + title="capitolo successivo">How to delete a Django application

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ HHooww ttoo ccrreeaattee ddaattaabbaassee mmiiggrraattiioonnss_?¶ ************ │ │ │ │ │ This document explains how to structure and write database migrations for │ │ │ │ │ different scenarios you might encounter. For introductory material on │ │ │ │ │ migrations, see _t_h_e_ _t_o_p_i_c_ _g_u_i_d_e. │ │ │ │ │ ********** DDaattaa mmiiggrraattiioonnss aanndd mmuullttiippllee ddaattaabbaasseess_?¶ ********** │ │ │ │ │ @@ -53,15 +53,15 @@ │ │ │ │ │ operations = [ │ │ │ │ │ migrations.RunPython(forwards, hints={"target_db": "default"}), │ │ │ │ │ ] │ │ │ │ │ If your RunPython or RunSQL operation only affects one model, it’s good │ │ │ │ │ practice to pass model_name as a hint to make it as transparent as possible to │ │ │ │ │ the router. This is especially important for reusable and third-party apps. │ │ │ │ │ ********** MMiiggrraattiioonnss tthhaatt aadddd uunniiqquuee ffiieellddss_?¶ ********** │ │ │ │ │ -Applying a “plain” migration that adds a unique non-nullable field to a table │ │ │ │ │ +Applying a «plain» migration that adds a unique non-nullable field to a table │ │ │ │ │ with existing rows will raise an error because the value used to populate │ │ │ │ │ existing rows is generated only once, thus breaking the unique constraint. │ │ │ │ │ Therefore, the following steps should be taken. In this example, we’ll add a │ │ │ │ │ non-nullable _U_U_I_D_F_i_e_l_d with a default value. Modify the respective field │ │ │ │ │ according to your needs. │ │ │ │ │ * Add the field on your model with default=uuid.uuid4 and unique=True │ │ │ │ │ arguments (choose an appropriate default for the type of the field you’re │ │ │ │ │ @@ -193,15 +193,15 @@ │ │ │ │ │ │ │ │ │ │ class Migration(migrations.Migration): │ │ │ │ │ dependencies = [ │ │ │ │ │ ("myapp", "0123_the_previous_migration"), │ │ │ │ │ ] │ │ │ │ │ Usually this will be enough, but from time to time you may need to ensure that │ │ │ │ │ your migration runs bbeeffoorree other migrations. This is useful, for example, to │ │ │ │ │ -make third-party apps’ migrations run aafftteerr your _A_U_T_H___U_S_E_R___M_O_D_E_L replacement. │ │ │ │ │ +make third-party apps” migrations run aafftteerr your _A_U_T_H___U_S_E_R___M_O_D_E_L replacement. │ │ │ │ │ To achieve this, place all migrations that should depend on yours in the │ │ │ │ │ run_before attribute on your Migration class: │ │ │ │ │ class Migration(migrations.Migration): │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ run_before = [ │ │ │ │ │ ("third_party_app", "0001_do_awesome"), │ │ │ │ │ @@ -341,16 +341,16 @@ │ │ │ │ │ o _D_a_t_a_ _m_i_g_r_a_t_i_o_n_s_ _a_n_d_ _m_u_l_t_i_p_l_e_ _d_a_t_a_b_a_s_e_s │ │ │ │ │ o _M_i_g_r_a_t_i_o_n_s_ _t_h_a_t_ _a_d_d_ _u_n_i_q_u_e_ _f_i_e_l_d_s │ │ │ │ │ # _N_o_n_-_a_t_o_m_i_c_ _m_i_g_r_a_t_i_o_n_s │ │ │ │ │ o _C_o_n_t_r_o_l_l_i_n_g_ _t_h_e_ _o_r_d_e_r_ _o_f_ _m_i_g_r_a_t_i_o_n_s │ │ │ │ │ o _M_i_g_r_a_t_i_n_g_ _d_a_t_a_ _b_e_t_w_e_e_n_ _t_h_i_r_d_-_p_a_r_t_y_ _a_p_p_s │ │ │ │ │ o _C_h_a_n_g_i_n_g_ _a_ _M_a_n_y_T_o_M_a_n_y_F_i_e_l_d_ _t_o_ _u_s_e_ _a_ _t_h_r_o_u_g_h_ _m_o_d_e_l │ │ │ │ │ o _C_h_a_n_g_i_n_g_ _a_n_ _u_n_m_a_n_a_g_e_d_ _m_o_d_e_l_ _t_o_ _m_a_n_a_g_e_d │ │ │ │ │ -****** PPrreevviioouuss ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo pprreecceeddeennttee ****** │ │ │ │ │ _H_o_w_ _t_o_ _i_n_s_t_a_l_l_ _D_j_a_n_g_o_ _o_n_ _W_i_n_d_o_w_s │ │ │ │ │ -****** NNeexxtt ttooppiicc ****** │ │ │ │ │ +****** AArrggoommeennttoo ssuucccceessssiivvoo ****** │ │ │ │ │ _H_o_w_ _t_o_ _d_e_l_e_t_e_ _a_ _D_j_a_n_g_o_ _a_p_p_l_i_c_a_t_i_o_n │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ ├── ./usr/share/doc/python-django-doc/html/index.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Django documentation — Django 5.1b1 documentation │ │ │ │ + Django documentation — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,25 +54,25 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -102,42 +103,42 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Getting help

    │ │ │ │

    Having trouble? We’d like to help!

    │ │ │ │
      │ │ │ │
    • Try the FAQ – it’s got answers to many common questions.

    • │ │ │ │ -
    • Looking for specific information? Try the Index, Module Index or │ │ │ │ +

    • Looking for specific information? Try the Indice, Indice dei moduli or │ │ │ │ the detailed table of contents.

    • │ │ │ │
    • Not found anything? See FAQ: Getting Help for information on getting support │ │ │ │ and asking questions to the community.

    • │ │ │ │
    • Report bugs with Django in our ticket tracker.

    • │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    How the documentation is organized

    │ │ │ │

    Django has a lot of documentation. A high-level overview of how it’s organized │ │ │ │ will help you know where to look for certain things:

    │ │ │ │
      │ │ │ │
    • Tutorials take you by the hand through a series of │ │ │ │ steps to create a web application. Start here if you’re new to Django or web │ │ │ │ -application development. Also look at the “First steps”.

    • │ │ │ │ +application development. Also look at the «First steps».

      │ │ │ │
    • Topic guides discuss key topics and concepts at a │ │ │ │ fairly high level and provide useful background information and explanation.

    • │ │ │ │
    • Reference guides contain technical reference for APIs and │ │ │ │ other aspects of Django’s machinery. They describe how it works and how to │ │ │ │ use it but assume that you have a basic understanding of key concepts.

    • │ │ │ │
    • How-to guides are recipes. They guide you through the │ │ │ │ steps involved in addressing key problems and use-cases. They are more │ │ │ │ advanced than tutorials and assume some knowledge of how Django works.

    • │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    The model layer

    │ │ │ │ -

    Django provides an abstraction layer (the “models”) for structuring and │ │ │ │ +

    Django provides an abstraction layer (the «models») for structuring and │ │ │ │ manipulating the data of your web application. Learn more about it below:

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    The view layer

    │ │ │ │ -

    Django has the concept of “views” to encapsulate the logic responsible for │ │ │ │ +

    Django has the concept of «views» to encapsulate the logic responsible for │ │ │ │ processing a user’s request and for returning the response. Find all you need │ │ │ │ to know about views via the links below:

    │ │ │ │
      │ │ │ │
    • The basics: │ │ │ │ URLconfs | │ │ │ │ View functions | │ │ │ │ Shortcuts | │ │ │ │ @@ -398,15 +399,15 @@ │ │ │ │ │ │ │ │

    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,8 +1,8 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ « _p_r_e_v_i_o_u_s | _u_p | _n_e_x_t » │ │ │ │ │ ************ DDjjaannggoo ddooccuummeennttaattiioonn_?¶ ************ │ │ │ │ │ Everything you need to know about Django. │ │ │ │ │ ********** FFiirrsstt sstteeppss_?¶ ********** │ │ │ │ │ Are you new to Django or to programming? This is the place to start! │ │ │ │ │ * FFrroomm ssccrraattcchh:: _O_v_e_r_v_i_e_w | _I_n_s_t_a_l_l_a_t_i_o_n │ │ │ │ │ @@ -11,50 +11,50 @@ │ │ │ │ │ _P_a_r_t_ _5_:_ _T_e_s_t_i_n_g | _P_a_r_t_ _6_:_ _S_t_a_t_i_c_ _f_i_l_e_s | _P_a_r_t_ _7_:_ _C_u_s_t_o_m_i_z_i_n_g_ _t_h_e_ _a_d_m_i_n │ │ │ │ │ _s_i_t_e | _P_a_r_t_ _8_:_ _A_d_d_i_n_g_ _t_h_i_r_d_-_p_a_r_t_y_ _p_a_c_k_a_g_e_s │ │ │ │ │ * AAddvvaanncceedd TTuuttoorriiaallss:: _H_o_w_ _t_o_ _w_r_i_t_e_ _r_e_u_s_a_b_l_e_ _a_p_p_s | _W_r_i_t_i_n_g_ _y_o_u_r_ _f_i_r_s_t │ │ │ │ │ _c_o_n_t_r_i_b_u_t_i_o_n_ _t_o_ _D_j_a_n_g_o │ │ │ │ │ ********** GGeettttiinngg hheellpp_?¶ ********** │ │ │ │ │ Having trouble? We’d like to help! │ │ │ │ │ * Try the _F_A_Q – it’s got answers to many common questions. │ │ │ │ │ - * Looking for specific information? Try the _I_n_d_e_x, _M_o_d_u_l_e_ _I_n_d_e_x or the │ │ │ │ │ - _d_e_t_a_i_l_e_d_ _t_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s. │ │ │ │ │ + * Looking for specific information? Try the _I_n_d_i_c_e, _I_n_d_i_c_e_ _d_e_i_ _m_o_d_u_l_i or │ │ │ │ │ + the _d_e_t_a_i_l_e_d_ _t_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s. │ │ │ │ │ * Not found anything? See _F_A_Q_:_ _G_e_t_t_i_n_g_ _H_e_l_p for information on getting │ │ │ │ │ support and asking questions to the community. │ │ │ │ │ * Report bugs with Django in our _t_i_c_k_e_t_ _t_r_a_c_k_e_r. │ │ │ │ │ ********** HHooww tthhee ddooccuummeennttaattiioonn iiss oorrggaanniizzeedd_?¶ ********** │ │ │ │ │ Django has a lot of documentation. A high-level overview of how it’s organized │ │ │ │ │ will help you know where to look for certain things: │ │ │ │ │ * _T_u_t_o_r_i_a_l_s take you by the hand through a series of steps to create a web │ │ │ │ │ application. Start here if you’re new to Django or web application │ │ │ │ │ - development. Also look at the “_F_i_r_s_t_ _s_t_e_p_s”. │ │ │ │ │ + development. Also look at the «_F_i_r_s_t_ _s_t_e_p_s». │ │ │ │ │ * _T_o_p_i_c_ _g_u_i_d_e_s discuss key topics and concepts at a fairly high level and │ │ │ │ │ provide useful background information and explanation. │ │ │ │ │ * _R_e_f_e_r_e_n_c_e_ _g_u_i_d_e_s contain technical reference for APIs and other aspects │ │ │ │ │ of Django’s machinery. They describe how it works and how to use it but │ │ │ │ │ assume that you have a basic understanding of key concepts. │ │ │ │ │ * _H_o_w_-_t_o_ _g_u_i_d_e_s are recipes. They guide you through the steps involved in │ │ │ │ │ addressing key problems and use-cases. They are more advanced than │ │ │ │ │ tutorials and assume some knowledge of how Django works. │ │ │ │ │ ********** TThhee mmooddeell llaayyeerr_?¶ ********** │ │ │ │ │ -Django provides an abstraction layer (the “models”) for structuring and │ │ │ │ │ +Django provides an abstraction layer (the «models») for structuring and │ │ │ │ │ manipulating the data of your web application. Learn more about it below: │ │ │ │ │ * MMooddeellss:: _I_n_t_r_o_d_u_c_t_i_o_n_ _t_o_ _m_o_d_e_l_s | _F_i_e_l_d_ _t_y_p_e_s | _I_n_d_e_x_e_s | _M_e_t_a_ _o_p_t_i_o_n_s | │ │ │ │ │ _M_o_d_e_l_ _c_l_a_s_s │ │ │ │ │ * QQuueerryySSeettss:: _M_a_k_i_n_g_ _q_u_e_r_i_e_s | _Q_u_e_r_y_S_e_t_ _m_e_t_h_o_d_ _r_e_f_e_r_e_n_c_e | _L_o_o_k_u_p │ │ │ │ │ _e_x_p_r_e_s_s_i_o_n_s │ │ │ │ │ * MMooddeell iinnssttaanncceess:: _I_n_s_t_a_n_c_e_ _m_e_t_h_o_d_s | _A_c_c_e_s_s_i_n_g_ _r_e_l_a_t_e_d_ _o_b_j_e_c_t_s │ │ │ │ │ * MMiiggrraattiioonnss:: _I_n_t_r_o_d_u_c_t_i_o_n_ _t_o_ _M_i_g_r_a_t_i_o_n_s | _O_p_e_r_a_t_i_o_n_s_ _r_e_f_e_r_e_n_c_e | │ │ │ │ │ _S_c_h_e_m_a_E_d_i_t_o_r | _W_r_i_t_i_n_g_ _m_i_g_r_a_t_i_o_n_s │ │ │ │ │ * AAddvvaanncceedd:: _M_a_n_a_g_e_r_s | _R_a_w_ _S_Q_L | _T_r_a_n_s_a_c_t_i_o_n_s | _A_g_g_r_e_g_a_t_i_o_n | _S_e_a_r_c_h | │ │ │ │ │ _C_u_s_t_o_m_ _f_i_e_l_d_s | _M_u_l_t_i_p_l_e_ _d_a_t_a_b_a_s_e_s | _C_u_s_t_o_m_ _l_o_o_k_u_p_s | _Q_u_e_r_y_ _E_x_p_r_e_s_s_i_o_n_s | │ │ │ │ │ _C_o_n_d_i_t_i_o_n_a_l_ _E_x_p_r_e_s_s_i_o_n_s | _D_a_t_a_b_a_s_e_ _F_u_n_c_t_i_o_n_s │ │ │ │ │ * OOtthheerr:: _S_u_p_p_o_r_t_e_d_ _d_a_t_a_b_a_s_e_s | _L_e_g_a_c_y_ _d_a_t_a_b_a_s_e_s | _P_r_o_v_i_d_i_n_g_ _i_n_i_t_i_a_l_ _d_a_t_a | │ │ │ │ │ _O_p_t_i_m_i_z_e_ _d_a_t_a_b_a_s_e_ _a_c_c_e_s_s | _P_o_s_t_g_r_e_S_Q_L_ _s_p_e_c_i_f_i_c_ _f_e_a_t_u_r_e_s │ │ │ │ │ ********** TThhee vviieeww llaayyeerr_?¶ ********** │ │ │ │ │ -Django has the concept of “views” to encapsulate the logic responsible for │ │ │ │ │ +Django has the concept of «views» to encapsulate the logic responsible for │ │ │ │ │ processing a user’s request and for returning the response. Find all you need │ │ │ │ │ to know about views via the links below: │ │ │ │ │ * TThhee bbaassiiccss:: _U_R_L_c_o_n_f_s | _V_i_e_w_ _f_u_n_c_t_i_o_n_s | _S_h_o_r_t_c_u_t_s | _D_e_c_o_r_a_t_o_r_s | │ │ │ │ │ _A_s_y_n_c_h_r_o_n_o_u_s_ _S_u_p_p_o_r_t │ │ │ │ │ * RReeffeerreennccee:: _B_u_i_l_t_-_i_n_ _V_i_e_w_s | _R_e_q_u_e_s_t_/_r_e_s_p_o_n_s_e_ _o_b_j_e_c_t_s | _T_e_m_p_l_a_t_e_R_e_s_p_o_n_s_e │ │ │ │ │ _o_b_j_e_c_t_s │ │ │ │ │ * FFiillee uuppllooaaddss:: _O_v_e_r_v_i_e_w | _F_i_l_e_ _o_b_j_e_c_t_s | _S_t_o_r_a_g_e_ _A_P_I | _M_a_n_a_g_i_n_g_ _f_i_l_e_s | │ │ │ ├── ./usr/share/doc/python-django-doc/html/internals/contributing/bugs-and-features.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Reporting bugs and requesting features — Django 5.1b1 documentation │ │ │ │ + Reporting bugs and requesting features — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,15 +54,15 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Let’s look at some of these more closely.

    │ │ │ │

    First is a question shortcut function, create_question, to take some │ │ │ │ repetition out of the process of creating questions.

    │ │ │ │

    test_no_questions doesn’t create any questions, but checks the message: │ │ │ │ -“No polls are available.” and verifies the latest_question_list is empty. │ │ │ │ +«No polls are available.» and verifies the latest_question_list is empty. │ │ │ │ Note that the django.test.TestCase class provides some additional │ │ │ │ assertion methods. In these examples, we use │ │ │ │ assertContains() and │ │ │ │ assertQuerySetEqual().

    │ │ │ │

    In test_past_question, we create a question and verify that it appears in │ │ │ │ the list.

    │ │ │ │

    In test_future_question, we create a question with a pub_date in the │ │ │ │ @@ -717,15 +718,15 @@ │ │ │ │ │ │ │ │

    │ │ │ │

    Further testing

    │ │ │ │

    This tutorial only introduces some of the basics of testing. There’s a great │ │ │ │ deal more you can do, and a number of very useful tools at your disposal to │ │ │ │ achieve some very clever things.

    │ │ │ │

    For example, while our tests here have covered some of the internal logic of a │ │ │ │ -model and the way our views publish information, you can use an “in-browser” │ │ │ │ +model and the way our views publish information, you can use an «in-browser» │ │ │ │ framework such as Selenium to test the way your HTML actually renders in a │ │ │ │ browser. These tools allow you to check not just the behavior of your Django │ │ │ │ code, but also, for example, of your JavaScript. It’s quite something to see │ │ │ │ the tests launch a browser, and start interacting with your site, as if a human │ │ │ │ being were driving it! Django includes LiveServerTestCase │ │ │ │ to facilitate integration with tools like Selenium.

    │ │ │ │

    If you have a complex application, you may want to run tests automatically │ │ │ │ @@ -796,37 +797,37 @@ │ │ │ │

  • What’s next?
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Writing your first Django app, part 4

    │ │ │ │ + title="capitolo precedente">Writing your first Django app, part 4

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Writing your first Django app, part 6

    │ │ │ │ + title="capitolo successivo">Writing your first Django app, part 6

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ -

    Now “Choices” is an available option in the Django admin. The “Add choice” form │ │ │ │ +

    Now «Choices» is an available option in the Django admin. The «Add choice» form │ │ │ │ looks like this:

    │ │ │ │ Choice admin page │ │ │ │ -

    In that form, the “Question” field is a select box containing every question in the │ │ │ │ +

    In that form, the «Question» field is a select box containing every question in the │ │ │ │ database. Django knows that a ForeignKey should be │ │ │ │ represented in the admin as a <select> box. In our case, only one question │ │ │ │ exists at this point.

    │ │ │ │ -

    Also note the “Add another question” link next to “Question.” Every object with │ │ │ │ +

    Also note the «Add another question» link next to «Question.» Every object with │ │ │ │ a ForeignKey relationship to another gets this for free. When you click │ │ │ │ -“Add another question”, you’ll get a popup window with the “Add question” form. │ │ │ │ -If you add a question in that window and click “Save”, Django will save the │ │ │ │ +«Add another question», you’ll get a popup window with the «Add question» form. │ │ │ │ +If you add a question in that window and click «Save», Django will save the │ │ │ │ question to the database and dynamically add it as the selected choice on the │ │ │ │ -“Add choice” form you’re looking at.

    │ │ │ │ +«Add choice» form you’re looking at.

    │ │ │ │

    But, really, this is an inefficient way of adding Choice objects to the system. │ │ │ │ It’d be better if you could add a bunch of Choices directly when you create the │ │ │ │ Question object. Let’s make that happen.

    │ │ │ │

    Remove the register() call for the Choice model. Then, edit the Question │ │ │ │ registration code to read:

    │ │ │ │
    │ │ │ │
    polls/admin.py
    │ │ │ │ @@ -212,22 +213,22 @@ │ │ │ │ inlines = [ChoiceInline] │ │ │ │ │ │ │ │ │ │ │ │ admin.site.register(Question, QuestionAdmin) │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    This tells Django: “Choice objects are edited on the Question admin page. By │ │ │ │ -default, provide enough fields for 3 choices.”

    │ │ │ │ -

    Load the “Add question” page to see how that looks:

    │ │ │ │ +

    This tells Django: «Choice objects are edited on the Question admin page. By │ │ │ │ +default, provide enough fields for 3 choices.»

    │ │ │ │ +

    Load the «Add question» page to see how that looks:

    │ │ │ │ Add question page now has choices on it │ │ │ │

    It works like this: There are three slots for related Choices – as specified │ │ │ │ -by extra – and each time you come back to the “Change” page for an │ │ │ │ +by extra – and each time you come back to the «Change» page for an │ │ │ │ already-created object, you get another three extra slots.

    │ │ │ │ -

    At the end of the three current slots you will find an “Add another Choice” │ │ │ │ +

    At the end of the three current slots you will find an «Add another Choice» │ │ │ │ link. If you click on it, a new slot will be added. If you want to remove the │ │ │ │ added slot, you can click on the X to the top right of the added slot. This │ │ │ │ image shows an added slot:

    │ │ │ │ Additional slot added dynamically │ │ │ │

    One small problem, though. It takes a lot of screen space to display all the │ │ │ │ fields for entering related Choice objects. For that reason, Django offers a │ │ │ │ tabular way of displaying inline related objects. To use it, change the │ │ │ │ @@ -237,21 +238,21 @@ │ │ │ │

    class ChoiceInline(admin.TabularInline): ...
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │

    With that TabularInline (instead of StackedInline), the │ │ │ │ related objects are displayed in a more compact, table-based format:

    │ │ │ │ Add question page now has more compact choices │ │ │ │ -

    Note that there is an extra “Delete?” column that allows removing rows added │ │ │ │ -using the “Add another Choice” button and rows that have already been saved.

    │ │ │ │ +

    Note that there is an extra «Delete?» column that allows removing rows added │ │ │ │ +using the «Add another Choice» button and rows that have already been saved.

    │ │ │ │ │ │ │ │
    │ │ │ │

    Customize the admin change list

    │ │ │ │

    Now that the Question admin page is looking good, let’s make some tweaks to the │ │ │ │ -“change list” page – the one that displays all the questions in the system.

    │ │ │ │ +«change list» page – the one that displays all the questions in the system.

    │ │ │ │

    Here’s what it looks like at this point:

    │ │ │ │ Polls change list page │ │ │ │

    By default, Django displays the str() of each object. But sometimes it’d be │ │ │ │ more helpful if we could display individual fields. To do that, use the │ │ │ │ list_display admin option, which is a │ │ │ │ list of field names to display, as columns, on the change list page for the │ │ │ │ object:

    │ │ │ │ @@ -306,21 +307,21 @@ │ │ │ │

    Edit your polls/admin.py file again and add an improvement to the │ │ │ │ Question change list page: filters using the │ │ │ │ list_filter. Add the following line to │ │ │ │ QuestionAdmin:

    │ │ │ │
    list_filter = ["pub_date"]
    │ │ │ │  
    │ │ │ │
    │ │ │ │ -

    That adds a “Filter” sidebar that lets people filter the change list by the │ │ │ │ +

    That adds a «Filter» sidebar that lets people filter the change list by the │ │ │ │ pub_date field:

    │ │ │ │ Polls change list page, updated │ │ │ │

    The type of filter displayed depends on the type of field you’re filtering on. │ │ │ │ Because pub_date is a DateTimeField, Django │ │ │ │ -knows to give appropriate filter options: “Any date”, “Today”, “Past 7 days”, │ │ │ │ -“This month”, “This year”.

    │ │ │ │ +knows to give appropriate filter options: «Any date», «Today», «Past 7 days», │ │ │ │ +«This month», «This year».

    │ │ │ │

    This is shaping up well. Let’s add some search capability:

    │ │ │ │
    search_fields = ["question_text"]
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    That adds a search box at the top of the change list. When somebody enters │ │ │ │ search terms, Django will search the question_text field. You can use as many │ │ │ │ fields as you’d like – although because it uses a LIKE query behind the │ │ │ │ @@ -329,15 +330,15 @@ │ │ │ │

    Now’s also a good time to note that change lists give you free pagination. The │ │ │ │ default is to display 100 items per page. Change list pagination, search boxes, filters, date-hierarchies, and │ │ │ │ column-header-ordering │ │ │ │ all work together like you think they should.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Customize the admin look and feel

    │ │ │ │ -

    Clearly, having “Django administration” at the top of each admin page is │ │ │ │ +

    Clearly, having «Django administration» at the top of each admin page is │ │ │ │ ridiculous. It’s just placeholder text.

    │ │ │ │

    You can change it, though, using Django’s template system. The Django admin is │ │ │ │ powered by Django itself, and its interfaces use Django’s own template system.

    │ │ │ │
    │ │ │ │

    Customizing your project’s templates

    │ │ │ │

    Create a templates directory in your project directory (the one that │ │ │ │ contains manage.py). Templates can live anywhere on your filesystem that │ │ │ │ @@ -487,37 +488,37 @@ │ │ │ │

  • Customize the admin index page
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Writing your first Django app, part 6

    │ │ │ │ + title="capitolo precedente">Writing your first Django app, part 6

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Writing your first Django app, part 8

    │ │ │ │ + title="capitolo successivo">Writing your first Django app, part 8

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Template system

    │ │ │ │
    │ │ │ │ @@ -282,15 +283,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │

    Use request objects

    │ │ │ │

    Views should have access to a request object – an object that stores metadata │ │ │ │ about the current request. The object should be passed directly to a view │ │ │ │ function, rather than the view function having to access the request data from │ │ │ │ a global variable. This makes it light, clean and easy to test views by passing │ │ │ │ -in “fake” request objects.

    │ │ │ │ +in «fake» request objects.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Loose coupling

    │ │ │ │

    A view shouldn’t care about which template system the developer uses – or even │ │ │ │ whether a template system is used at all.

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -389,37 +390,37 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    API stability

    │ │ │ │ + title="capitolo precedente">API stability

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Third-party distributions of Django

    │ │ │ │ + title="capitolo successivo">Third-party distributions of Django

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ + up
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ │ -************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_tt_ii_oo_nn ************ │ │ │ │ │ +************ _DD_jj_aa_nn_gg_oo_ _55_.._11_bb_11_ _dd_oo_cc_uu_mm_ee_nn_tt_aa_zz_ii_oo_nn_ee ************ │ │ │ │ │ _H_o_m_e | _T_a_b_l_e_ _o_f_ _c_o_n_t_e_n_t_s | _I_n_d_e_x | _M_o_d_u_l_e_s │ │ │ │ │ _u_p │ │ │ │ │ -************ PPyytthhoonn MMoodduullee IInnddeexx ************ │ │ │ │ │ +************ IInnddiiccee ddeell mmoodduulloo PPyytthhoonn ************ │ │ │ │ │ _aa | _cc | _dd | _ff | _hh | _mm | _ss | _tt | _uu | _vv │ │ │ │ │   │ │ │ │ │ aa │ │ │ │ │ _d_j_a_n_g_o_._a_p_p_s │ │ │ │ │   │ │ │ │ │ cc │ │ │ │ │ [-] django.conf │ │ │ │ │ @@ -219,12 +219,12 @@ │ │ │ │ │     _d_j_a_n_g_o_._v_i_e_w_s_._d_e_c_o_r_a_t_o_r_s_._c_o_m_m_o_n │ │ │ │ │     _d_j_a_n_g_o_._v_i_e_w_s_._d_e_c_o_r_a_t_o_r_s_._c_s_r_f │ │ │ │ │     _d_j_a_n_g_o_._v_i_e_w_s_._d_e_c_o_r_a_t_o_r_s_._g_z_i_p │ │ │ │ │     _d_j_a_n_g_o_._v_i_e_w_s_._d_e_c_o_r_a_t_o_r_s_._h_t_t_p │ │ │ │ │     _d_j_a_n_g_o_._v_i_e_w_s_._d_e_c_o_r_a_t_o_r_s_._v_a_r_y │ │ │ │ │     _d_j_a_n_g_o_._v_i_e_w_s_._g_e_n_e_r_i_c_._d_a_t_e_s │ │ │ │ │     _d_j_a_n_g_o_._v_i_e_w_s_._i_1_8_n │ │ │ │ │ -******** QQuuiicckk sseeaarrcchh ******** │ │ │ │ │ -[q ][Go] │ │ │ │ │ +******** RRiicceerrccaa vveellooccee ******** │ │ │ │ │ +[q ][Vai] │ │ │ │ │ ******** LLaasstt uuppddaattee:: ******** │ │ │ │ │ -Jun 26, 2024 │ │ │ │ │ +giu 26, 2024 │ │ │ │ │ _u_p │ │ │ ├── ./usr/share/doc/python-django-doc/html/ref/applications.html │ │ │ │ @@ -1,22 +1,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Applications — Django 5.1b1 documentation │ │ │ │ + Applications — Django 5.1b1 documentazione │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -53,15 +54,15 @@ │ │ │ │ })(jQuery); │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Django 5.1b1 documentation

    │ │ │ │ +

    Django 5.1b1 documentazione

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    For application authors

    │ │ │ │ -

    If you’re creating a pluggable app called “Rock ’n’ roll”, here’s how you │ │ │ │ +

    If you’re creating a pluggable app called «Rock ’n’ roll», here’s how you │ │ │ │ would provide a proper name for the admin:

    │ │ │ │
    # rock_n_roll/apps.py
    │ │ │ │  
    │ │ │ │  from django.apps import AppConfig
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  class RockNRollConfig(AppConfig):
    │ │ │ │ @@ -165,28 +166,28 @@
    │ │ │ │  configuration applies to. You can define any other attribute documented in the
    │ │ │ │  AppConfig API reference.

    │ │ │ │

    AppConfig subclasses may be defined anywhere. The apps.py │ │ │ │ convention merely allows Django to load them automatically when │ │ │ │ INSTALLED_APPS contains the path to an application module rather │ │ │ │ than the path to a configuration class.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    If your code imports the application registry in an application’s │ │ │ │ __init__.py, the name apps will clash with the apps submodule. │ │ │ │ The best practice is to move that code to a submodule and import it. A │ │ │ │ workaround is to import the registry under a different name:

    │ │ │ │
    from django.apps import apps as django_apps
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    For application users

    │ │ │ │ -

    If you’re using “Rock ’n’ roll” in a project called anthology, but you │ │ │ │ -want it to show up as “Jazz Manouche” instead, you can provide your own │ │ │ │ +

    If you’re using «Rock ’n’ roll» in a project called anthology, but you │ │ │ │ +want it to show up as «Jazz Manouche» instead, you can provide your own │ │ │ │ configuration:

    │ │ │ │
    # anthology/apps.py
    │ │ │ │  
    │ │ │ │  from rock_n_roll.apps import RockNRollConfig
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  class JazzManoucheConfig(RockNRollConfig):
    │ │ │ │ @@ -209,15 +210,15 @@
    │ │ │ │  cannot be automatically detected.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Application configuration

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class AppConfig[source]
    │ │ │ │ +class AppConfig[sorgente] │ │ │ │

    Application configuration objects store metadata for an application. Some │ │ │ │ attributes can be configured in AppConfig │ │ │ │ subclasses. Others are set by Django and read-only.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Configurable attributes

    │ │ │ │ @@ -239,15 +240,15 @@ │ │ │ │ It should be a valid Python identifier.

    │ │ │ │

    It must be unique across a Django project.

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ AppConfig.verbose_name
    │ │ │ │ -

    Human-readable name for the application, e.g. “Administration”.

    │ │ │ │ +

    Human-readable name for the application, e.g. «Administration».

    │ │ │ │

    This attribute defaults to label.title().

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ AppConfig.path
    │ │ │ │

    Filesystem path to the application directory, e.g. │ │ │ │ @@ -271,15 +272,15 @@ │ │ │ │ AppConfig subclass and you want Django to use one of them by │ │ │ │ default.

    │ │ │ │

    By default, this attribute isn’t set.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -AppConfig.default_auto_field[source]
    │ │ │ │ +AppConfig.default_auto_field[sorgente] │ │ │ │

    The implicit primary key type to add to models within this app. You can │ │ │ │ use this to keep AutoField as the primary key │ │ │ │ type for third party applications.

    │ │ │ │

    By default, this is the value of DEFAULT_AUTO_FIELD.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -305,34 +306,34 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Methods

    │ │ │ │
    │ │ │ │
    │ │ │ │ -AppConfig.get_models(include_auto_created=False, include_swapped=False)[source]
    │ │ │ │ +AppConfig.get_models(include_auto_created=False, include_swapped=False)[sorgente] │ │ │ │

    Returns an iterable of Model classes for this │ │ │ │ application.

    │ │ │ │

    Requires the app registry to be fully populated.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -AppConfig.get_model(model_name, require_ready=True)[source]
    │ │ │ │ +AppConfig.get_model(model_name, require_ready=True)[sorgente] │ │ │ │

    Returns the Model with the given │ │ │ │ model_name. model_name is case-insensitive.

    │ │ │ │

    Raises LookupError if no such model exists in this application.

    │ │ │ │

    Requires the app registry to be fully populated unless the │ │ │ │ require_ready argument is set to False. require_ready behaves │ │ │ │ exactly as in apps.get_model().

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -AppConfig.ready()[source]
    │ │ │ │ +AppConfig.ready()[sorgente] │ │ │ │

    Subclasses can override this method to perform initialization tasks such │ │ │ │ as registering signals. It is called as soon as the registry is fully │ │ │ │ populated.

    │ │ │ │

    Although you can’t import models at the module-level where │ │ │ │ AppConfig classes are defined, you can import them in │ │ │ │ ready(), using either an import statement or │ │ │ │ get_model().

    │ │ │ │ @@ -354,42 +355,42 @@ │ │ │ │ MyModel = self.get_model("MyModel") │ │ │ │ │ │ │ │ # registering signals with the model's string label │ │ │ │ pre_save.connect(receiver, sender="app_label.MyModel") │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Although you can access model classes as described above, avoid │ │ │ │ interacting with the database in your ready() implementation. │ │ │ │ This includes model methods that execute queries │ │ │ │ (save(), │ │ │ │ delete(), manager methods etc.), and │ │ │ │ also raw SQL queries via django.db.connection. Your │ │ │ │ ready() method will run during startup of every management │ │ │ │ command. For example, even though the test database configuration is │ │ │ │ separate from the production settings, manage.py test would still │ │ │ │ execute some queries against your production database!

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    In the usual initialization process, the ready method is only called │ │ │ │ once by Django. But in some corner cases, particularly in tests which │ │ │ │ are fiddling with installed applications, ready might be called more │ │ │ │ than once. In that case, either write idempotent methods, or put a flag │ │ │ │ on your AppConfig classes to prevent rerunning code which should │ │ │ │ be executed exactly one time.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Namespace packages as apps

    │ │ │ │ -

    Python packages without an __init__.py file are known as “namespace │ │ │ │ -packages” and may be spread across multiple directories at different locations │ │ │ │ +

    Python packages without an __init__.py file are known as «namespace │ │ │ │ +packages» and may be spread across multiple directories at different locations │ │ │ │ on sys.path (see PEP 420).

    │ │ │ │

    Django applications require a single base filesystem path where Django │ │ │ │ (depending on configuration) will search for templates, static assets, │ │ │ │ etc. Thus, namespace packages may only be Django applications if one of the │ │ │ │ following is true:

    │ │ │ │
      │ │ │ │
    1. The namespace package actually has only a single location (i.e. is not │ │ │ │ @@ -470,15 +471,15 @@ │ │ │ │

      Initialization process

      │ │ │ │
      │ │ │ │

      How applications are loaded

      │ │ │ │

      When Django starts, django.setup() is responsible for populating the │ │ │ │ application registry.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -setup(set_prefix=True)[source]
      │ │ │ │ +setup(set_prefix=True)[sorgente] │ │ │ │

      Configures Django by:

      │ │ │ │
        │ │ │ │
      • Loading the settings.

      • │ │ │ │
      • Setting up logging.

      • │ │ │ │
      • If set_prefix is True, setting the URL resolver script prefix to │ │ │ │ FORCE_SCRIPT_NAME if defined, or / otherwise.

      • │ │ │ │
      • Initializing the application registry.

      • │ │ │ │ @@ -501,15 +502,15 @@ │ │ │ │
          │ │ │ │
        1. First Django imports each item in INSTALLED_APPS.

          │ │ │ │

          If it’s an application configuration class, Django imports the root package │ │ │ │ of the application, defined by its name attribute. If │ │ │ │ it’s a Python package, Django looks for an application configuration in an │ │ │ │ apps.py submodule, or else creates a default application configuration.

          │ │ │ │

          At this stage, your code shouldn’t import any models!

          │ │ │ │ -

          In other words, your applications’ root packages and the modules that │ │ │ │ +

          In other words, your applications” root packages and the modules that │ │ │ │ define your application configuration classes shouldn’t import any models, │ │ │ │ even indirectly.

          │ │ │ │

          Strictly speaking, Django allows importing models once their application │ │ │ │ configuration is loaded. However, in order to avoid needless constraints on │ │ │ │ the order of INSTALLED_APPS, it’s strongly recommended not │ │ │ │ import any models at this stage.

          │ │ │ │

          Once this stage completes, APIs that operate on application configurations │ │ │ │ @@ -548,15 +549,15 @@ │ │ │ │

        2. │ │ │ │
        3. ImportError: cannot import name ... This happens if the import sequence │ │ │ │ ends up in a loop.

          │ │ │ │

          To eliminate such problems, you should minimize dependencies between your │ │ │ │ models modules and do as little work as possible at import time. To avoid │ │ │ │ executing code at import time, you can move it into a function and cache its │ │ │ │ results. The code will be executed when you first need its results. This │ │ │ │ -concept is known as “lazy evaluation”.

          │ │ │ │ +concept is known as «lazy evaluation».

          │ │ │ │
        4. │ │ │ │
        5. django.contrib.admin automatically performs autodiscovery of admin │ │ │ │ modules in installed applications. To prevent it, change your │ │ │ │ INSTALLED_APPS to contain │ │ │ │ 'django.contrib.admin.apps.SimpleAdminConfig' instead of │ │ │ │ 'django.contrib.admin'.

        6. │ │ │ │
        7. RuntimeWarning: Accessing the database during app initialization is │ │ │ │ @@ -624,37 +625,37 @@ │ │ │ │

        8. │ │ │ │
      │ │ │ │
    2. │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
      │ │ │ │ -

      Previous topic

      │ │ │ │ +

      Argomento precedente

      │ │ │ │

      API Reference

      │ │ │ │ + title="capitolo precedente">API Reference

      │ │ │ │
      │ │ │ │
      │ │ │ │ -

      Next topic

      │ │ │ │ +

      Argomento successivo

      │ │ │ │

      System check framework

      │ │ │ │ + title="capitolo successivo">System check framework

      │ │ │ │
      │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

      Last update:

      │ │ │ │ -

      Jun 26, 2024

      │ │ │ │ +

      giu 26, 2024

      │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
      │ │ │ │
    │ │ │ │
    │ │ │ │

    Models

    │ │ │ │
      │ │ │ │ @@ -1083,37 +1084,37 @@ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Applications

    │ │ │ │ + title="capitolo precedente">Applications

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Built-in class-based views API

    │ │ │ │ + title="capitolo successivo">Built-in class-based views API

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    AsWKT

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class AsWKT(expression, **extra)[source]
    │ │ │ │ +class AsWKT(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ Oracle, PostGIS, SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns a Well-known text │ │ │ │ (WKT) representation of the geometry.

    │ │ │ │

    Example:

    │ │ │ │ @@ -341,29 +342,29 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Azimuth

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Azimuth(point_a, point_b, **extra)[source]
    │ │ │ │ +class Azimuth(point_a, point_b, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ SpatiaLite (LWGEOM/RTTOPO)

    │ │ │ │

    Returns the azimuth in radians of the segment defined by the given point │ │ │ │ geometries, or None if the two points are coincident. The azimuth is angle │ │ │ │ referenced from north and is positive clockwise: north = 0; east = π/2; │ │ │ │ south = π; west = 3π/2.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    BoundingCircle

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class BoundingCircle(expression, num_seg=48, **extra)[source]
    │ │ │ │ +class BoundingCircle(expression, num_seg=48, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ Oracle, │ │ │ │ SpatiaLite 5.1+

    │ │ │ │

    Accepts a single geographic field or expression and returns the smallest circle │ │ │ │ polygon that can fully contain the geometry.

    │ │ │ │ @@ -372,54 +373,54 @@ │ │ │ │ Changed in Django 5.1:

    SpatiaLite 5.1+ support was added.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Centroid

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Centroid(expression, **extra)[source]
    │ │ │ │ +class Centroid(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ PostGIS, Oracle, SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns the centroid │ │ │ │ value of the geometry.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    ClosestPoint

    │ │ │ │
    │ │ │ │ New in Django 5.0.
    │ │ │ │
    │ │ │ │
    │ │ │ │ -class ClosestPoint(expr1, expr2, **extra)[source]
    │ │ │ │ +class ClosestPoint(expr1, expr2, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ SpatiaLite

    │ │ │ │

    Accepts two geographic fields or expressions and returns the 2-dimensional │ │ │ │ point on geometry A that is closest to geometry B.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Difference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Difference(expr1, expr2, **extra)[source]
    │ │ │ │ +class Difference(expr1, expr2, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ PostGIS, Oracle, SpatiaLite

    │ │ │ │

    Accepts two geographic fields or expressions and returns the geometric │ │ │ │ difference, that is the part of geometry A that does not intersect with │ │ │ │ geometry B.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Distance

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Distance(expr1, expr2, spheroid=None, **extra)[source]
    │ │ │ │ +class Distance(expr1, expr2, spheroid=None, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ PostGIS, Oracle, SpatiaLite

    │ │ │ │

    Accepts two geographic fields or expressions and returns the distance between │ │ │ │ them, as a Distance object. On MySQL, a raw │ │ │ │ float value is returned when the coordinates are geodetic.

    │ │ │ │ @@ -442,55 +443,55 @@ │ │ │ │ Wollongong 990071.220408 m │ │ │ │ Shellharbour 972804.613941 m │ │ │ │ Thirroul 1002334.36351 m │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Because the distance attribute is a │ │ │ │ Distance object, you can easily express │ │ │ │ the value in the units of your choice. For example, city.distance.mi is │ │ │ │ the distance value in miles and city.distance.km is the distance value │ │ │ │ in kilometers. See Measurement Objects for usage details and the list of │ │ │ │ Supported units.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Envelope

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Envelope(expression, **extra)[source]
    │ │ │ │ +class Envelope(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ Oracle, │ │ │ │ PostGIS, SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns the geometry │ │ │ │ representing the bounding box of the geometry.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    ForcePolygonCW

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class ForcePolygonCW(expression, **extra)[source]
    │ │ │ │ +class ForcePolygonCW(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns a modified version │ │ │ │ of the polygon/multipolygon in which all exterior rings are oriented clockwise │ │ │ │ and all interior rings are oriented counterclockwise. Non-polygonal geometries │ │ │ │ are returned unchanged.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    FromWKB

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FromWKB(expression, srid=0, **extra)[source]
    │ │ │ │ +class FromWKB(expression, srid=0, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ Oracle, PostGIS, SpatiaLite

    │ │ │ │

    Creates geometry from Well-known binary (WKB) representation. The optional │ │ │ │ srid argument allows to specify the SRID of the resulting geometry. │ │ │ │ srid is ignored on Oracle.

    │ │ │ │ @@ -498,15 +499,15 @@ │ │ │ │ Changed in Django 5.1:

    The srid argument was added.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    FromWKT

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FromWKT(expression, srid=0, **extra)[source]
    │ │ │ │ +class FromWKT(expression, srid=0, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ Oracle, PostGIS, SpatiaLite

    │ │ │ │

    Creates geometry from Well-known text (WKT) representation. The optional │ │ │ │ srid argument allows to specify the SRID of the resulting geometry. │ │ │ │ srid is ignored on Oracle.

    │ │ │ │ @@ -514,77 +515,77 @@ │ │ │ │ Changed in Django 5.1:

    The srid argument was added.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    GeoHash

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class GeoHash(expression, precision=None, **extra)[source]
    │ │ │ │ +class GeoHash(expression, precision=None, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MySQL, │ │ │ │ PostGIS, SpatiaLite │ │ │ │ (LWGEOM/RTTOPO)

    │ │ │ │

    Accepts a single geographic field or expression and returns a GeoHash │ │ │ │ representation of the geometry.

    │ │ │ │

    The precision keyword argument controls the number of characters in the │ │ │ │ result.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    GeometryDistance

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class GeometryDistance(expr1, expr2, **extra)[source]
    │ │ │ │ +class GeometryDistance(expr1, expr2, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS

    │ │ │ │

    Accepts two geographic fields or expressions and returns the distance between │ │ │ │ them. When used in an order_by() clause, │ │ │ │ it provides index-assisted nearest-neighbor result sets.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Intersection

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Intersection(expr1, expr2, **extra)[source]
    │ │ │ │ +class Intersection(expr1, expr2, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ PostGIS, Oracle, SpatiaLite

    │ │ │ │

    Accepts two geographic fields or expressions and returns the geometric │ │ │ │ intersection between them.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    IsEmpty

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class IsEmpty(expr)[source]
    │ │ │ │ +class IsEmpty(expr)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS

    │ │ │ │

    Accepts a geographic field or expression and tests if the value is an empty │ │ │ │ geometry. Returns True if its value is empty and False otherwise.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    IsValid

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class IsValid(expr)[source]
    │ │ │ │ +class IsValid(expr)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MySQL, │ │ │ │ PostGIS, Oracle, SpatiaLite

    │ │ │ │

    Accepts a geographic field or expression and tests if the value is well formed. │ │ │ │ Returns True if its value is a valid geometry and False otherwise.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Length

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Length(expression, spheroid=True, **extra)[source]
    │ │ │ │ +class Length(expression, spheroid=True, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ Oracle, PostGIS, SpatiaLite

    │ │ │ │

    Accepts a single geographic linestring or multilinestring field or expression │ │ │ │ and returns its length as a Distance │ │ │ │ measure.

    │ │ │ │ @@ -594,128 +595,128 @@ │ │ │ │ resource-intensive) with the spheroid keyword argument.

    │ │ │ │

    MySQL doesn’t support length calculations on geographic SRSes.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    LineLocatePoint

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class LineLocatePoint(linestring, point, **extra)[source]
    │ │ │ │ +class LineLocatePoint(linestring, point, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ SpatiaLite

    │ │ │ │

    Returns a float between 0 and 1 representing the location of the closest point on │ │ │ │ linestring to the given point, as a fraction of the 2D line length.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    MakeValid

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class MakeValid(expr)[source]
    │ │ │ │ +class MakeValid(expr)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ SpatiaLite (LWGEOM/RTTOPO)

    │ │ │ │

    Accepts a geographic field or expression and attempts to convert the value into │ │ │ │ a valid geometry without losing any of the input vertices. Geometries that are │ │ │ │ already valid are returned without changes. Simple polygons might become a │ │ │ │ multipolygon and the result might be of lower dimension than the input.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    MemSize

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class MemSize(expression, **extra)[source]
    │ │ │ │ +class MemSize(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS

    │ │ │ │

    Accepts a single geographic field or expression and returns the memory size │ │ │ │ (number of bytes) that the geometry field takes.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    NumGeometries

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class NumGeometries(expression, **extra)[source]
    │ │ │ │ +class NumGeometries(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ PostGIS, Oracle, │ │ │ │ SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns the number of │ │ │ │ geometries if the geometry field is a collection (e.g., a GEOMETRYCOLLECTION │ │ │ │ or MULTI* field). Returns 1 for single geometries.

    │ │ │ │

    On MySQL, returns None for single geometries.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    NumPoints

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class NumPoints(expression, **extra)[source]
    │ │ │ │ +class NumPoints(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ PostGIS, Oracle, SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns the number of points │ │ │ │ in a geometry.

    │ │ │ │

    On MySQL, returns None for any non-LINESTRING geometry.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Perimeter

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Perimeter(expression, **extra)[source]
    │ │ │ │ +class Perimeter(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ Oracle, SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns the perimeter of the │ │ │ │ geometry field as a Distance object.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    PointOnSurface

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class PointOnSurface(expression, **extra)[source]
    │ │ │ │ +class PointOnSurface(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ MariaDB, Oracle, SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns a Point geometry │ │ │ │ guaranteed to lie on the surface of the field; otherwise returns None.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Reverse

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Reverse(expression, **extra)[source]
    │ │ │ │ +class Reverse(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, Oracle, │ │ │ │ SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns a geometry with │ │ │ │ reversed coordinates.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Scale

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Scale(expression, x, y, z=0.0, **extra)[source]
    │ │ │ │ +class Scale(expression, x, y, z=0.0, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns a geometry with │ │ │ │ scaled coordinates by multiplying them with the x, y, and optionally │ │ │ │ z parameters.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    SnapToGrid

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class SnapToGrid(expression, *args, **extra)[source]
    │ │ │ │ +class SnapToGrid(expression, *args, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns a geometry with all │ │ │ │ points snapped to the given grid. How the geometry is snapped to the grid │ │ │ │ depends on how many numeric (either float, integer, or long) arguments are │ │ │ │ @@ -739,61 +740,61 @@ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │
    │ │ │ │

    SymDifference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class SymDifference(expr1, expr2, **extra)[source]
    │ │ │ │ +class SymDifference(expr1, expr2, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ PostGIS, Oracle, │ │ │ │ SpatiaLite

    │ │ │ │

    Accepts two geographic fields or expressions and returns the geometric │ │ │ │ symmetric difference (union without the intersection) between the given │ │ │ │ parameters.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Transform

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Transform(expression, srid, **extra)[source]
    │ │ │ │ +class Transform(expression, srid, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ Oracle, SpatiaLite

    │ │ │ │

    Accepts a geographic field or expression and a SRID integer code, and returns │ │ │ │ the transformed geometry to the spatial reference system specified by the │ │ │ │ srid parameter.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    What spatial reference system an integer SRID corresponds to may depend on │ │ │ │ the spatial database used. In other words, the SRID numbers used for Oracle │ │ │ │ are not necessarily the same as those used by PostGIS.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Translate

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Translate(expression, x, y, z=0.0, **extra)[source]
    │ │ │ │ +class Translate(expression, x, y, z=0.0, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ SpatiaLite

    │ │ │ │

    Accepts a single geographic field or expression and returns a geometry with │ │ │ │ its coordinates offset by the x, y, and optionally z numeric │ │ │ │ parameters.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Union

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Union(expr1, expr2, **extra)[source]
    │ │ │ │ +class Union(expr1, expr2, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: MariaDB, MySQL, │ │ │ │ PostGIS, Oracle, SpatiaLite

    │ │ │ │

    Accepts two geographic fields or expressions and returns the union of both │ │ │ │ geometries.

    │ │ │ │
    │ │ │ │ @@ -852,37 +853,37 @@ │ │ │ │
  • Union
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    GIS QuerySet API Reference

    │ │ │ │ + title="capitolo precedente">GIS QuerySet API Reference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Measurement Objects

    │ │ │ │ + title="capitolo successivo">Measurement Objects

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -570,20 +571,20 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Driver

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Driver(dr_input)[source]
    │ │ │ │ +class Driver(dr_input)[sorgente] │ │ │ │

    The Driver class is used internally to wrap an OGR DataSource │ │ │ │ driver.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -driver_count[source]
    │ │ │ │ +driver_count[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the number of OGR vector drivers currently registered.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -599,30 +600,30 @@ │ │ │ │ coordinate transformation:

    │ │ │ │
    >>> from django.contrib.gis.gdal import OGRGeometry
    │ │ │ │  >>> polygon = OGRGeometry("POLYGON((0 0, 5 0, 5 5, 0 5))")
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -class OGRGeometry(geom_input, srs=None)[source]
    │ │ │ │ +class OGRGeometry(geom_input, srs=None)[sorgente] │ │ │ │

    This object is a wrapper for the OGR Geometry class. These objects are │ │ │ │ instantiated directly from the given geom_input parameter, which may be │ │ │ │ a string containing WKT, HEX, GeoJSON, a buffer containing WKB data, or │ │ │ │ an OGRGeomType object. These objects are also returned from the │ │ │ │ Feature.geom attribute, when reading vector data from │ │ │ │ Layer (which is in turn a part of a DataSource).

    │ │ │ │
    │ │ │ │
    │ │ │ │ -classmethod from_gml(gml_string)[source]
    │ │ │ │ +classmethod from_gml(gml_string)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Constructs an OGRGeometry from the given GML string.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -classmethod from_bbox(bbox)[source]
    │ │ │ │ +classmethod from_bbox(bbox)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Constructs a Polygon from the given bounding-box (a 4-tuple).

    │ │ │ │
    │ │ │ │
    │ │ │ │ __len__()
    │ │ │ │
    │ │ │ │ @@ -645,44 +646,44 @@ │ │ │ │ │ │ │ │

    Returns the point at the specified index for a LineString, the │ │ │ │ interior ring at the specified index for a Polygon, or the geometry │ │ │ │ at the specified index in a GeometryCollection. Not applicable to │ │ │ │ other geometry types.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -dimension[source]
    │ │ │ │ +dimension[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the number of coordinated dimensions of the geometry, i.e. 0 │ │ │ │ for points, 1 for lines, and so forth:

    │ │ │ │
    >>> polygon.dimension
    │ │ │ │  2
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -coord_dim[source]
    │ │ │ │ +coord_dim[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the coordinate dimension of this geometry. For example, the value │ │ │ │ would be 2 for two-dimensional geometries.

    │ │ │ │
    │ │ │ │ -

    Deprecated since version 5.1: The coord_dim setter is deprecated. Use set_3d() instead.

    │ │ │ │ +

    Deprecato dalla versione 5.1: The coord_dim setter is deprecated. Use set_3d() instead.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -is_3d[source]
    │ │ │ │ +is_3d[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ New in Django 5.1.
    │ │ │ │

    A boolean indicating if this geometry has Z coordinates.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -set_3d(value)[source]
    │ │ │ │ +set_3d(value)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ New in Django 5.1.
    │ │ │ │

    A method that adds or removes the Z coordinate dimension.

    │ │ │ │
    >>> p = OGRGeometry("POINT (1 2 3)")
    │ │ │ │  >>> p.is_3d
    │ │ │ │ @@ -690,23 +691,23 @@
    │ │ │ │  >>> p.set_3d(False)
    │ │ │ │  >>> p.wkt
    │ │ │ │  "POINT (1 2)"
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -is_measured[source]
    │ │ │ │ +is_measured[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ New in Django 5.1.
    │ │ │ │

    A boolean indicating if this geometry has M coordinates.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -set_measured(value)[source]
    │ │ │ │ +set_measured(value)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ New in Django 5.1.
    │ │ │ │

    A method to add or remove the M coordinate dimension.

    │ │ │ │
    >>> p = OGRGeometry("POINT (1 2)")
    │ │ │ │  >>> p.is_measured
    │ │ │ │ @@ -714,80 +715,80 @@
    │ │ │ │  >>> p.set_measured(True)
    │ │ │ │  >>> p.wkt
    │ │ │ │  "POINT M (1 2 0)"
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -geom_count[source]
    │ │ │ │ +geom_count[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the number of elements in this geometry:

    │ │ │ │
    >>> polygon.geom_count
    │ │ │ │  1
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -point_count[source]
    │ │ │ │ +point_count[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the number of points used to describe this geometry:

    │ │ │ │
    >>> polygon.point_count
    │ │ │ │  4
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -num_points[source]
    │ │ │ │ +num_points[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Alias for point_count.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -num_coords[source]
    │ │ │ │ +num_coords[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Alias for point_count.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -geom_type[source]
    │ │ │ │ +geom_type[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the type of this geometry, as an OGRGeomType object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -geom_name[source]
    │ │ │ │ +geom_name[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the name of the type of this geometry:

    │ │ │ │
    >>> polygon.geom_name
    │ │ │ │  'POLYGON'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -area[source]
    │ │ │ │ +area[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the area of this geometry, or 0 for geometries that do not contain │ │ │ │ an area:

    │ │ │ │
    >>> polygon.area
    │ │ │ │  25.0
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -envelope[source]
    │ │ │ │ +envelope[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the envelope of this geometry, as an Envelope object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -extent[source]
    │ │ │ │ +extent[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the envelope of this geometry as a 4-tuple, instead of as an │ │ │ │ Envelope object:

    │ │ │ │
    >>> point.extent
    │ │ │ │  (0.0, 0.0, 5.0, 5.0)
    │ │ │ │  
    │ │ │ │ @@ -813,215 +814,215 @@ │ │ │ │ │ │ │ │

    Returns or sets the spatial reference identifier corresponding to │ │ │ │ SpatialReference of this geometry. Returns None if │ │ │ │ there is no spatial reference information associated with this │ │ │ │ geometry, or if an SRID cannot be determined.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -geos[source]
    │ │ │ │ +geos[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a GEOSGeometry object │ │ │ │ corresponding to this geometry.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -gml[source]
    │ │ │ │ +gml[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a string representation of this geometry in GML format:

    │ │ │ │
    >>> OGRGeometry("POINT(1 2)").gml
    │ │ │ │  '<gml:Point><gml:coordinates>1,2</gml:coordinates></gml:Point>'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -hex[source]
    │ │ │ │ +hex[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a string representation of this geometry in HEX WKB format:

    │ │ │ │
    >>> OGRGeometry("POINT(1 2)").hex
    │ │ │ │  '0101000000000000000000F03F0000000000000040'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -json[source]
    │ │ │ │ +json[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a string representation of this geometry in JSON format:

    │ │ │ │
    >>> OGRGeometry("POINT(1 2)").json
    │ │ │ │  '{ "type": "Point", "coordinates": [ 1.000000, 2.000000 ] }'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -kml[source]
    │ │ │ │ +kml[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a string representation of this geometry in KML format.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -wkb_size[source]
    │ │ │ │ +wkb_size[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the size of the WKB buffer needed to hold a WKB representation │ │ │ │ of this geometry:

    │ │ │ │
    >>> OGRGeometry("POINT(1 2)").wkb_size
    │ │ │ │  21
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -wkb[source]
    │ │ │ │ +wkb[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a buffer containing a WKB representation of this geometry.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -wkt[source]
    │ │ │ │ +wkt[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a string representation of this geometry in WKT format.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -ewkt[source]
    │ │ │ │ +ewkt[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the EWKT representation of this geometry.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -clone()[source]
    │ │ │ │ +clone()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a new OGRGeometry clone of this geometry object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -close_rings()[source]
    │ │ │ │ +close_rings()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    If there are any rings within this geometry that have not been closed, │ │ │ │ this routine will do so by adding the starting point to the end:

    │ │ │ │
    >>> triangle = OGRGeometry("LINEARRING (0 0,0 1,1 0)")
    │ │ │ │  >>> triangle.close_rings()
    │ │ │ │  >>> triangle.wkt
    │ │ │ │  'LINEARRING (0 0,0 1,1 0,0 0)'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -transform(coord_trans, clone=False)[source]
    │ │ │ │ +transform(coord_trans, clone=False)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Transforms this geometry to a different spatial reference system. May take │ │ │ │ a CoordTransform object, a SpatialReference object, or │ │ │ │ any other input accepted by SpatialReference (including spatial │ │ │ │ reference WKT and PROJ strings, or an integer SRID).

    │ │ │ │

    By default nothing is returned and the geometry is transformed in-place. │ │ │ │ However, if the clone keyword is set to True then a transformed │ │ │ │ clone of this geometry is returned instead.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -intersects(other)[source]
    │ │ │ │ +intersects(other)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns True if this geometry intersects the other, otherwise returns │ │ │ │ False.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -equals(other)[source]
    │ │ │ │ +equals(other)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns True if this geometry is equivalent to the other, otherwise │ │ │ │ returns False.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -disjoint(other)[source]
    │ │ │ │ +disjoint(other)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns True if this geometry is spatially disjoint to (i.e. does │ │ │ │ not intersect) the other, otherwise returns False.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -touches(other)[source]
    │ │ │ │ +touches(other)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns True if this geometry touches the other, otherwise returns │ │ │ │ False.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -crosses(other)[source]
    │ │ │ │ +crosses(other)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns True if this geometry crosses the other, otherwise returns │ │ │ │ False.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -within(other)[source]
    │ │ │ │ +within(other)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns True if this geometry is contained within the other, otherwise │ │ │ │ returns False.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -contains(other)[source]
    │ │ │ │ +contains(other)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns True if this geometry contains the other, otherwise returns │ │ │ │ False.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -overlaps(other)[source]
    │ │ │ │ +overlaps(other)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns True if this geometry overlaps the other, otherwise returns │ │ │ │ False.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -boundary()[source]
    │ │ │ │ +boundary()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The boundary of this geometry, as a new OGRGeometry object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -convex_hull[source]
    │ │ │ │ +convex_hull[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The smallest convex polygon that contains this geometry, as a new │ │ │ │ OGRGeometry object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -difference()[source]
    │ │ │ │ +difference()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the region consisting of the difference of this geometry and │ │ │ │ the other, as a new OGRGeometry object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -intersection()[source]
    │ │ │ │ +intersection()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the region consisting of the intersection of this geometry and │ │ │ │ the other, as a new OGRGeometry object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -sym_difference()[source]
    │ │ │ │ +sym_difference()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the region consisting of the symmetric difference of this │ │ │ │ geometry and the other, as a new OGRGeometry object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -union()[source]
    │ │ │ │ +union()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the region consisting of the union of this geometry and │ │ │ │ the other, as a new OGRGeometry object.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -centroid[source]
    │ │ │ │ +centroid[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a Point representing the centroid of this geometry.

    │ │ │ │
    │ │ │ │ Changed in Django 5.1:

    centroid was promoted from a Polygon only attribute to │ │ │ │ being available on all geometry types.

    │ │ │ │
    │ │ │ │ @@ -1175,28 +1176,28 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    OGRGeomType

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class OGRGeomType(type_input)[source]
    │ │ │ │ +class OGRGeomType(type_input)[sorgente] │ │ │ │

    This class allows for the representation of an OGR geometry type │ │ │ │ in any of several ways:

    │ │ │ │
    >>> from django.contrib.gis.gdal import OGRGeomType
    │ │ │ │  >>> gt1 = OGRGeomType(3)  # Using an integer for the type
    │ │ │ │  >>> gt2 = OGRGeomType("Polygon")  # Using a string
    │ │ │ │  >>> gt3 = OGRGeomType("POLYGON")  # It's case-insensitive
    │ │ │ │  >>> print(gt1 == 3, gt1 == "Polygon")  # Equivalence works w/non-OGRGeomType objects
    │ │ │ │  True True
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -name[source]
    │ │ │ │ +name[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a short-hand string form of the OGR Geometry type:

    │ │ │ │
    >>> gt1.name
    │ │ │ │  'Polygon'
    │ │ │ │  
    │ │ │ │
    │ │ │ │ @@ -1208,15 +1209,15 @@ │ │ │ │

    Returns the number corresponding to the OGR geometry type:

    │ │ │ │
    >>> gt1.num
    │ │ │ │  3
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -django[source]
    │ │ │ │ +django[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the Django field type (a subclass of GeometryField) to use for │ │ │ │ storing this OGR type, or None if there is no appropriate Django type:

    │ │ │ │
    >>> gt1.django
    │ │ │ │  'PolygonField'
    │ │ │ │  
    │ │ │ │ @@ -1224,82 +1225,82 @@ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Envelope

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Envelope(*args)[source]
    │ │ │ │ +class Envelope(*args)[sorgente] │ │ │ │

    Represents an OGR Envelope structure that contains the minimum and maximum │ │ │ │ X, Y coordinates for a rectangle bounding box. The naming of the variables │ │ │ │ is compatible with the OGR Envelope C structure.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -min_x[source]
    │ │ │ │ +min_x[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The value of the minimum X coordinate.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -min_y[source]
    │ │ │ │ +min_y[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The value of the maximum X coordinate.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -max_x[source]
    │ │ │ │ +max_x[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The value of the minimum Y coordinate.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -max_y[source]
    │ │ │ │ +max_y[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The value of the maximum Y coordinate.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -ur[source]
    │ │ │ │ +ur[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The upper-right coordinate, as a tuple.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -ll[source]
    │ │ │ │ +ll[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The lower-left coordinate, as a tuple.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -tuple[source]
    │ │ │ │ +tuple[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A tuple representing the envelope.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -wkt[source]
    │ │ │ │ +wkt[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A string representing this envelope as a polygon in WKT format.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -expand_to_include(*args)[source]
    │ │ │ │ +expand_to_include(*args)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Coordinate System Objects

    │ │ │ │
    │ │ │ │

    SpatialReference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class SpatialReference(srs_input)[source]
    │ │ │ │ +class SpatialReference(srs_input)[sorgente] │ │ │ │

    Spatial reference objects are initialized on the given srs_input, │ │ │ │ which may be one of the following:

    │ │ │ │
      │ │ │ │
    • OGC Well Known Text (WKT) (a string)

    • │ │ │ │
    • EPSG code (integer or string)

    • │ │ │ │
    • PROJ string

    • │ │ │ │
    • A shorthand string for well-known standards ('WGS84', 'WGS72', │ │ │ │ @@ -1323,15 +1324,15 @@ │ │ │ │ ... AUTHORITY["EPSG","9122"]], │ │ │ │ ... AUTHORITY["EPSG","4326"]]""" │ │ │ │ ... ) # OGC WKT │ │ │ │ │ │ │ │ │ │ │ │

      │ │ │ │
      │ │ │ │ -__getitem__(target)[source]
      │ │ │ │ +__getitem__(target)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the value of the given string attribute node, None if the node │ │ │ │ doesn’t exist. Can also take a tuple as a parameter, (target, child), where │ │ │ │ child is the index of the attribute in the WKT. For example:

      │ │ │ │
      >>> wkt = 'GEOGCS["WGS 84", DATUM["WGS_1984, ... AUTHORITY["EPSG","4326"]]'
      │ │ │ │  >>> srs = SpatialReference(wkt)  # could also use 'WGS84', or 4326
      │ │ │ │ @@ -1349,219 +1350,219 @@
      │ │ │ │  EPSG
      │ │ │ │  >>> print(srs["UNIT|AUTHORITY", 1])  # The authority value for the units
      │ │ │ │  9122
      │ │ │ │  
      │ │ │ │
      │ │ │ │
      │ │ │ │
      │ │ │ │ -attr_value(target, index=0)[source]
      │ │ │ │ +attr_value(target, index=0)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      The attribute value for the given target node (e.g. 'PROJCS'). │ │ │ │ The index keyword specifies an index of the child node to return.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -auth_name(target)[source]
      │ │ │ │ +auth_name(target)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the authority name for the given string target node.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -auth_code(target)[source]
      │ │ │ │ +auth_code(target)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the authority code for the given string target node.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -clone()[source]
      │ │ │ │ +clone()[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns a clone of this spatial reference object.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -identify_epsg()[source]
      │ │ │ │ +identify_epsg()[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      This method inspects the WKT of this SpatialReference and will add EPSG │ │ │ │ authority nodes where an EPSG identifier is applicable.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -from_esri()[source]
      │ │ │ │ +from_esri()[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Morphs this SpatialReference from ESRI’s format to EPSG

      │ │ │ │
      │ │ │ │
      │ │ │ │ -to_esri()[source]
      │ │ │ │ +to_esri()[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Morphs this SpatialReference to ESRI’s format.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -validate()[source]
      │ │ │ │ +validate()[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Checks to see if the given spatial reference is valid, if not │ │ │ │ an exception will be raised.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -import_epsg(epsg)[source]
      │ │ │ │ +import_epsg(epsg)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Import spatial reference from EPSG code.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -import_proj(proj)[source]
      │ │ │ │ +import_proj(proj)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Import spatial reference from PROJ string.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -import_user_input(user_input)[source]
      │ │ │ │ +import_user_input(user_input)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │
      │ │ │ │
      │ │ │ │ -import_wkt(wkt)[source]
      │ │ │ │ +import_wkt(wkt)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Import spatial reference from WKT.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -import_xml(xml)[source]
      │ │ │ │ +import_xml(xml)[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Import spatial reference from XML.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -name[source]
      │ │ │ │ +name[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the name of this Spatial Reference.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -srid[source]
      │ │ │ │ +srid[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the SRID of top-level authority, or None if undefined.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -linear_name[source]
      │ │ │ │ +linear_name[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the name of the linear units.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -linear_units[source]
      │ │ │ │ +linear_units[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the value of the linear units.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -angular_name[source]
      │ │ │ │ +angular_name[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │ -

      Returns the name of the angular units.”

      │ │ │ │ +

      Returns the name of the angular units.»

      │ │ │ │
      │ │ │ │
      │ │ │ │ -angular_units[source]
      │ │ │ │ +angular_units[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the value of the angular units.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -units[source]
      │ │ │ │ +units[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns a 2-tuple of the units value and the units name and will │ │ │ │ automatically determines whether to return the linear or angular units.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -ellipsoid[source]
      │ │ │ │ +ellipsoid[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns a tuple of the ellipsoid parameters for this spatial reference: │ │ │ │ (semimajor axis, semiminor axis, and inverse flattening).

      │ │ │ │
      │ │ │ │
      │ │ │ │ -semi_major[source]
      │ │ │ │ +semi_major[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the semi major axis of the ellipsoid for this spatial reference.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -semi_minor[source]
      │ │ │ │ +semi_minor[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the semi minor axis of the ellipsoid for this spatial reference.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -inverse_flattening[source]
      │ │ │ │ +inverse_flattening[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the inverse flattening of the ellipsoid for this spatial reference.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -geographic[source]
      │ │ │ │ +geographic[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns True if this spatial reference is geographic (root node is │ │ │ │ GEOGCS).

      │ │ │ │
      │ │ │ │
      │ │ │ │ -local[source]
      │ │ │ │ +local[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns True if this spatial reference is local (root node is │ │ │ │ LOCAL_CS).

      │ │ │ │
      │ │ │ │
      │ │ │ │ -projected[source]
      │ │ │ │ +projected[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns True if this spatial reference is a projected coordinate system │ │ │ │ (root node is PROJCS).

      │ │ │ │
      │ │ │ │
      │ │ │ │ -wkt[source]
      │ │ │ │ +wkt[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the WKT representation of this spatial reference.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -pretty_wkt[source]
      │ │ │ │ +pretty_wkt[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │ -

      Returns the ‘pretty’ representation of the WKT.

      │ │ │ │ +

      Returns the “pretty” representation of the WKT.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -proj[source]
      │ │ │ │ +proj[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the PROJ representation for this spatial reference.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -proj4[source]
      │ │ │ │ +proj4[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Alias for SpatialReference.proj.

      │ │ │ │
      │ │ │ │
      │ │ │ │ -xml[source]
      │ │ │ │ +xml[sorgente] │ │ │ │
      │ │ │ │ │ │ │ │

      Returns the XML representation of this spatial reference.

      │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    CoordTransform

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class CoordTransform(source, target)[source]
    │ │ │ │ +class CoordTransform(source, target)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Represents a coordinate system transform. It is initialized with two │ │ │ │ SpatialReference, representing the source and target coordinate │ │ │ │ systems, respectively. These objects should be used when performing the same │ │ │ │ coordinate transformation repeatedly on different geometries:

    │ │ │ │
    >>> ct = CoordTransform(SpatialReference("WGS84"), SpatialReference("NAD83"))
    │ │ │ │ @@ -1582,24 +1583,24 @@
    │ │ │ │  formats and data sources using a consistent interface.  Each
    │ │ │ │  data source is represented by a GDALRaster object which contains
    │ │ │ │  one or more layers of data named bands.  Each band, represented by a
    │ │ │ │  GDALBand object, contains georeferenced image data. For example, an RGB
    │ │ │ │  image is represented as three bands: one for red, one for green, and one for
    │ │ │ │  blue.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    For raster data there is no difference between a raster instance and its │ │ │ │ data source. Unlike for the Geometry objects, GDALRaster objects are │ │ │ │ always a data source. Temporary rasters can be instantiated in memory │ │ │ │ using the corresponding driver, but they will be of the same class as file-based │ │ │ │ raster sources.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -class GDALRaster(ds_input, write=False)[source]
    │ │ │ │ +class GDALRaster(ds_input, write=False)[sorgente] │ │ │ │

    The constructor for GDALRaster accepts two parameters. The first │ │ │ │ parameter defines the raster source, and the second parameter defines if a │ │ │ │ raster should be opened in write mode. For newly-created rasters, the second │ │ │ │ parameter is ignored and the new raster is always created in write mode.

    │ │ │ │

    The first parameter can take three forms: a string or │ │ │ │ Path representing a file path (filesystem or GDAL virtual │ │ │ │ filesystem), a dictionary with values defining a new raster, or a bytes │ │ │ │ @@ -1653,26 +1654,26 @@ │ │ │ │ True │ │ │ │ >>> rst.name # Stored in a random path in the vsimem filesystem. │ │ │ │ '/vsimem/da300bdb-129d-49a8-b336-e410a9428dad' │ │ │ │

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -name[source]
    │ │ │ │ +name[sorgente] │ │ │ │

    The name of the source which is equivalent to the input file path or the name │ │ │ │ provided upon instantiation.

    │ │ │ │
    >>> GDALRaster({"width": 10, "height": 10, "name": "myraster", "srid": 4326}).name
    │ │ │ │  'myraster'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -driver[source]
    │ │ │ │ +driver[sorgente] │ │ │ │

    The name of the GDAL driver used to handle the input file. For GDALRasters created │ │ │ │ from a file, the driver type is detected automatically. The creation of rasters from │ │ │ │ scratch is an in-memory raster by default ('MEM'), but can be │ │ │ │ altered as needed. For instance, use GTiff for a GeoTiff file. │ │ │ │ For a list of file types, see also the GDAL Raster Formats list.

    │ │ │ │

    An in-memory raster is created through the following example:

    │ │ │ │
    >>> GDALRaster({"width": 10, "height": 10, "srid": 4326}).driver.name
    │ │ │ │ @@ -1698,35 +1699,35 @@
    │ │ │ │  'GTiff'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -width[source]
    │ │ │ │ +width[sorgente] │ │ │ │

    The width of the source in pixels (X-axis).

    │ │ │ │
    >>> GDALRaster({"width": 10, "height": 20, "srid": 4326}).width
    │ │ │ │  10
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -height[source]
    │ │ │ │ +height[sorgente] │ │ │ │

    The height of the source in pixels (Y-axis).

    │ │ │ │
    >>> GDALRaster({"width": 10, "height": 20, "srid": 4326}).height
    │ │ │ │  20
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -srs[source]
    │ │ │ │ +srs[sorgente] │ │ │ │

    The spatial reference system of the raster, as a │ │ │ │ SpatialReference instance. The SRS can be changed by │ │ │ │ setting it to an other SpatialReference or providing any input │ │ │ │ that is accepted by the SpatialReference constructor.

    │ │ │ │
    >>> rst = GDALRaster({"width": 10, "height": 20, "srid": 4326})
    │ │ │ │  >>> rst.srs.srid
    │ │ │ │  4326
    │ │ │ │ @@ -1735,15 +1736,15 @@
    │ │ │ │  3086
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -srid[source]
    │ │ │ │ +srid[sorgente] │ │ │ │

    The Spatial Reference System Identifier (SRID) of the raster. This │ │ │ │ property is a shortcut to getting or setting the SRID through the │ │ │ │ srs attribute.

    │ │ │ │
    >>> rst = GDALRaster({"width": 10, "height": 20, "srid": 4326})
    │ │ │ │  >>> rst.srid
    │ │ │ │  4326
    │ │ │ │  >>> rst.srid = 3086
    │ │ │ │ @@ -1753,15 +1754,15 @@
    │ │ │ │  3086
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -geotransform[source]
    │ │ │ │ +geotransform[sorgente] │ │ │ │

    The affine transformation matrix used to georeference the source, as a │ │ │ │ tuple of six coefficients which map pixel/line coordinates into │ │ │ │ georeferenced space using the following relationship:

    │ │ │ │
    Xgeo = GT(0) + Xpixel * GT(1) + Yline * GT(2)
    │ │ │ │  Ygeo = GT(3) + Xpixel * GT(4) + Yline * GT(5)
    │ │ │ │  
    │ │ │ │
    │ │ │ │ @@ -1774,15 +1775,15 @@ │ │ │ │ [0.0, 1.0, 0.0, 0.0, 0.0, -1.0] │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -origin[source]
    │ │ │ │ +origin[sorgente] │ │ │ │

    Coordinates of the top left origin of the raster in the spatial │ │ │ │ reference system of the source, as a point object with x and y │ │ │ │ members.

    │ │ │ │
    >>> rst = GDALRaster({"width": 10, "height": 20, "srid": 4326})
    │ │ │ │  >>> rst.origin
    │ │ │ │  [0.0, 0.0]
    │ │ │ │  >>> rst.origin.x = 1
    │ │ │ │ @@ -1790,15 +1791,15 @@
    │ │ │ │  [1.0, 0.0]
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -scale[source]
    │ │ │ │ +scale[sorgente] │ │ │ │

    Pixel width and height used for georeferencing the raster, as a point │ │ │ │ object with x and y members. See geotransform for more │ │ │ │ information.

    │ │ │ │
    >>> rst = GDALRaster({"width": 10, "height": 20, "srid": 4326})
    │ │ │ │  >>> rst.scale
    │ │ │ │  [1.0, -1.0]
    │ │ │ │  >>> rst.scale.x = 2
    │ │ │ │ @@ -1806,15 +1807,15 @@
    │ │ │ │  [2.0, -1.0]
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -skew[source]
    │ │ │ │ +skew[sorgente] │ │ │ │

    Skew coefficients used to georeference the raster, as a point object │ │ │ │ with x and y members. In case of north up images, these │ │ │ │ coefficients are both 0.

    │ │ │ │
    >>> rst = GDALRaster({"width": 10, "height": 20, "srid": 4326})
    │ │ │ │  >>> rst.skew
    │ │ │ │  [0.0, 0.0]
    │ │ │ │  >>> rst.skew.x = 3
    │ │ │ │ @@ -1822,15 +1823,15 @@
    │ │ │ │  [3.0, 0.0]
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -extent[source]
    │ │ │ │ +extent[sorgente] │ │ │ │

    Extent (boundary values) of the raster source, as a 4-tuple │ │ │ │ (xmin, ymin, xmax, ymax) in the spatial reference system of the │ │ │ │ source.

    │ │ │ │
    >>> rst = GDALRaster({"width": 10, "height": 20, "srid": 4326})
    │ │ │ │  >>> rst.extent
    │ │ │ │  (0.0, -20.0, 10.0, 0.0)
    │ │ │ │  >>> rst.origin.x = 100
    │ │ │ │ @@ -1838,15 +1839,15 @@
    │ │ │ │  (100.0, -20.0, 110.0, 0.0)
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -bands[source]
    │ │ │ │ +bands[sorgente] │ │ │ │

    List of all bands of the source, as GDALBand instances.

    │ │ │ │
    >>> rst = GDALRaster(
    │ │ │ │  ...     {
    │ │ │ │  ...         "width": 1,
    │ │ │ │  ...         "height": 2,
    │ │ │ │  ...         "srid": 4326,
    │ │ │ │  ...         "bands": [{"data": [0, 1]}, {"data": [2, 3]}],
    │ │ │ │ @@ -1858,15 +1859,15 @@
    │ │ │ │  array([[ 2.,  3.]], dtype=float32)
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -warp(ds_input, resampling='NearestNeighbour', max_error=0.0)[source]
    │ │ │ │ +warp(ds_input, resampling='NearestNeighbour', max_error=0.0)[sorgente] │ │ │ │

    Returns a warped version of this raster.

    │ │ │ │

    The warping parameters can be specified through the ds_input │ │ │ │ argument. The use of ds_input is analogous to the corresponding │ │ │ │ argument of the class constructor. It is a dictionary with the │ │ │ │ characteristics of the target raster. Allowed dictionary key values are │ │ │ │ width, height, SRID, origin, scale, skew, datatype, driver, and name │ │ │ │ (filename).

    │ │ │ │ @@ -1907,15 +1908,15 @@ │ │ │ │ [ 31., 33., 35.]], dtype=float32) │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -transform(srs, driver=None, name=None, resampling='NearestNeighbour', max_error=0.0)[source]
    │ │ │ │ +transform(srs, driver=None, name=None, resampling='NearestNeighbour', max_error=0.0)[sorgente] │ │ │ │

    Transforms this raster to a different spatial reference system │ │ │ │ (srs), which may be a SpatialReference object, or any │ │ │ │ other input accepted by SpatialReference (including spatial │ │ │ │ reference WKT and PROJ strings, or an integer SRID).

    │ │ │ │

    It calculates the bounds and scale of the current raster in the new │ │ │ │ spatial reference system and warps the raster using the │ │ │ │ warp function.

    │ │ │ │ @@ -1944,15 +1945,15 @@ │ │ │ │ [-82.98492744885776, 27.601924753080144] │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -info[source]
    │ │ │ │ +info[sorgente] │ │ │ │

    Returns a string with a summary of the raster. This is equivalent to │ │ │ │ the gdalinfo command line utility.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ metadata
    │ │ │ │ @@ -1975,22 +1976,22 @@ │ │ │ │ {'DEFAULT': {'VERSION': '2.0'}} │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -vsi_buffer[source]
    │ │ │ │ +vsi_buffer[sorgente] │ │ │ │

    A bytes representation of this raster. Returns None for rasters │ │ │ │ that are not stored in GDAL’s virtual filesystem.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -is_vsi_based[source]
    │ │ │ │ +is_vsi_based[sorgente] │ │ │ │

    A boolean indicating if this raster is stored in GDAL’s virtual │ │ │ │ filesystem.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ @@ -2040,61 +2041,61 @@ │ │ │ │

    If a persistent cache value is found, that value is returned. For │ │ │ │ raster formats using Persistent Auxiliary Metadata (PAM) services, the │ │ │ │ statistics might be cached in an auxiliary file. In some cases this │ │ │ │ metadata might be out of sync with the pixel values or cause values │ │ │ │ from a previous call to be returned which don’t reflect the value of │ │ │ │ the approximate argument. In such cases, use the refresh │ │ │ │ argument to get updated values and store them in the cache.

    │ │ │ │ -

    For empty bands (where all pixel values are “no data”), all statistics │ │ │ │ +

    For empty bands (where all pixel values are «no data»), all statistics │ │ │ │ are returned as None.

    │ │ │ │

    The statistics can also be retrieved directly by accessing the │ │ │ │ min, max, mean, and std properties.

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ min
    │ │ │ │ -

    The minimum pixel value of the band (excluding the “no data” value).

    │ │ │ │ +

    The minimum pixel value of the band (excluding the «no data» value).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ max
    │ │ │ │ -

    The maximum pixel value of the band (excluding the “no data” value).

    │ │ │ │ +

    The maximum pixel value of the band (excluding the «no data» value).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ mean
    │ │ │ │ -

    The mean of all pixel values of the band (excluding the “no data” │ │ │ │ +

    The mean of all pixel values of the band (excluding the «no data» │ │ │ │ value).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ std
    │ │ │ │

    The standard deviation of all pixel values of the band (excluding the │ │ │ │ -“no data” value).

    │ │ │ │ +«no data» value).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ nodata_value
    │ │ │ │ -

    The “no data” value for a band is generally a special marker value used │ │ │ │ +

    The «no data» value for a band is generally a special marker value used │ │ │ │ to mark pixels that are not valid data. Such pixels should generally not │ │ │ │ be displayed, nor contribute to analysis operations.

    │ │ │ │ -

    To delete an existing “no data” value, set this property to None.

    │ │ │ │ +

    To delete an existing «no data» value, set this property to None.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ datatype(as_string=False)
    │ │ │ │

    The data type contained in the band, as an integer constant between 0 │ │ │ │ (Unknown) and 14. If as_string is True, the data type is │ │ │ │ -returned as a string. Check out the “GDAL Pixel Type” column in the │ │ │ │ +returned as a string. Check out the «GDAL Pixel Type» column in the │ │ │ │ datatype value table for possible values.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ color_interp(as_string=False)
    │ │ │ │

    The color interpretation for the band, as an integer between 0and 16. │ │ │ │ @@ -2344,16 +2345,16 @@ │ │ │ │ │ │ │ │

    │ │ │ │
    │ │ │ │ bands
    │ │ │ │

    A list of band_input dictionaries with band input data. The resulting │ │ │ │ band indices are the same as in the list provided. The definition of the │ │ │ │ band input dictionary is given below. If band data isn’t provided, the │ │ │ │ -raster bands values are instantiated as an array of zeros and the “no │ │ │ │ -data” value is set to None.

    │ │ │ │ +raster bands values are instantiated as an array of zeros and the «no │ │ │ │ +data» value is set to None.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ papsz_options
    │ │ │ │

    A dictionary with raster creation options. The key-value pairs of the │ │ │ │ input dictionary are passed to the driver on creation of the raster.

    │ │ │ │ @@ -2385,15 +2386,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    The band_input dictionary

    │ │ │ │

    The bands key in the ds_input dictionary is a list of band_input │ │ │ │ dictionaries. Each band_input dictionary can contain pixel values and the │ │ │ │ -“no data” value to be set on the bands of the new raster. The data array can │ │ │ │ +«no data» value to be set on the bands of the new raster. The data array can │ │ │ │ have the full size of the new raster or be smaller. For arrays that are smaller │ │ │ │ than the full raster, the size, shape, and offset keys control the │ │ │ │ pixel values. The corresponding keys are passed to the data() │ │ │ │ method. Their functionality is the same as setting the band data with that │ │ │ │ method. The following table describes the keys that can be used.

    │ │ │ │ │ │ │ │ │ │ │ │ @@ -2526,21 +2527,21 @@ │ │ │ │ location (e.g., /home/john/lib/libgdal.so).

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Exceptions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -exception GDALException[source]
    │ │ │ │ +exception GDALException[sorgente] │ │ │ │

    The base GDAL exception, indicating a GDAL-related error.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -exception SRSException[source]
    │ │ │ │ +exception SRSException[sorgente] │ │ │ │

    An exception raised when an error occurs when constructing or using a │ │ │ │ spatial reference system object.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -2607,37 +2608,37 @@ │ │ │ │
  • Exceptions
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    GEOS API

    │ │ │ │ + title="capitolo precedente">GEOS API

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Geolocation with GeoIP2

    │ │ │ │ + title="capitolo successivo">Geolocation with GeoIP2

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    exact, same_as

    │ │ │ │

    Availability: PostGIS, │ │ │ │ Oracle, MariaDB, MySQL, SpatiaLite, PGRaster (Bilateral)

    │ │ │ │ -

    Tests if the geometry field is “equal” to the lookup geometry. On Oracle, │ │ │ │ +

    Tests if the geometry field is «equal» to the lookup geometry. On Oracle, │ │ │ │ MySQL, and SpatiaLite, it tests spatial equality, while on PostGIS it tests │ │ │ │ equality of bounding boxes.

    │ │ │ │

    Example:

    │ │ │ │
    Zipcode.objects.filter(poly=geom)
    │ │ │ │  
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -611,15 +612,15 @@ │ │ │ │ (geom, pattern); the form of pattern will depend on the spatial backend:

    │ │ │ │
    │ │ │ │

    MariaDB, PostGIS, and SpatiaLite

    │ │ │ │

    On these spatial backends the intersection pattern is a string comprising │ │ │ │ nine characters, which define intersections between the interior, boundary, │ │ │ │ and exterior of the geometry field and the lookup geometry. │ │ │ │ The intersection pattern matrix may only use the following characters: │ │ │ │ -1, 2, T, F, or *. This lookup type allows users to “fine tune” │ │ │ │ +1, 2, T, F, or *. This lookup type allows users to «fine tune» │ │ │ │ a specific geometric relationship consistent with the DE-9IM model. [1]

    │ │ │ │

    Geometry example:

    │ │ │ │
    # A tuple lookup parameter is used to specify the geometry and
    │ │ │ │  # the intersection pattern (the pattern here is for 'contains').
    │ │ │ │  Zipcode.objects.filter(poly__relate=(geom, "T*T***FF*"))
    │ │ │ │  
    │ │ │ │
    │ │ │ │ @@ -1060,15 +1061,15 @@ │ │ │ │ >>> WorldBorder.objects.aggregate(Extent("mpoly"), Union("mpoly")) │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Collect

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Collect(geo_field, filter=None)[source]
    │ │ │ │ +class Collect(geo_field, filter=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, MySQL, │ │ │ │ SpatiaLite

    │ │ │ │

    Returns a GEOMETRYCOLLECTION or a MULTI geometry object from the geometry │ │ │ │ column. This is analogous to a simplified version of the Union │ │ │ │ aggregate, except it can be several orders of magnitude faster than performing │ │ │ │ @@ -1081,15 +1082,15 @@ │ │ │ │ Changed in Django 5.1:

    MySQL 8.0.24+ support was added.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Extent

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Extent(geo_field, filter=None)[source]
    │ │ │ │ +class Extent(geo_field, filter=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ Oracle, SpatiaLite

    │ │ │ │

    Returns the extent of all geo_field in the QuerySet as a 4-tuple, │ │ │ │ comprising the lower left coordinate and the upper right coordinate.

    │ │ │ │

    Example:

    │ │ │ │ @@ -1102,15 +1103,15 @@ │ │ │ │ Changed in Django 5.0:

    Support for using the filter argument was added.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Extent3D

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Extent3D(geo_field, filter=None)[source]
    │ │ │ │ +class Extent3D(geo_field, filter=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS

    │ │ │ │

    Returns the 3D extent of all geo_field in the QuerySet as a 6-tuple, │ │ │ │ comprising the lower left coordinate and upper right coordinate (each with x, y, │ │ │ │ and z coordinates).

    │ │ │ │

    Example:

    │ │ │ │ @@ -1123,15 +1124,15 @@ │ │ │ │ Changed in Django 5.0:

    Support for using the filter argument was added.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    MakeLine

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class MakeLine(geo_field, filter=None)[source]
    │ │ │ │ +class MakeLine(geo_field, filter=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ SpatiaLite

    │ │ │ │

    Returns a LineString constructed from the point field geometries in the │ │ │ │ QuerySet. Currently, ordering the queryset has no effect.

    │ │ │ │

    Example:

    │ │ │ │ @@ -1144,25 +1145,25 @@ │ │ │ │ Changed in Django 5.0:

    Support for using the filter argument was added.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Union

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Union(geo_field, filter=None)[source]
    │ │ │ │ +class Union(geo_field, filter=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Availability: PostGIS, │ │ │ │ Oracle, SpatiaLite

    │ │ │ │

    This method returns a GEOSGeometry object │ │ │ │ comprising the union of every geometry in the queryset. Please note that use of │ │ │ │ Union is processor intensive and may take a significant amount of time on │ │ │ │ large querysets.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    If the computation time for using this method is too expensive, consider │ │ │ │ using Collect instead.

    │ │ │ │
    │ │ │ │

    Example:

    │ │ │ │
    >>> u = Zipcode.objects.aggregate(Union(poly))  # This may take a long time.
    │ │ │ │  >>> u = Zipcode.objects.filter(poly__within=bbox).aggregate(
    │ │ │ │  ...     Union(poly)
    │ │ │ │ @@ -1182,15 +1183,15 @@
    │ │ │ │  [2]
    │ │ │ │  

    See SDO_RELATE documentation, from the Oracle Spatial and │ │ │ │ Graph Developer’s Guide.

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1260,37 +1261,37 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    GeoDjango Forms API

    │ │ │ │ + title="capitolo precedente">GeoDjango Forms API

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Geographic Database Functions

    │ │ │ │ + title="capitolo successivo">Geographic Database Functions

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -1370,15 +1371,15 @@ │ │ │ │ >>> wkb_w.outdim=3# Tell writer to include Z values │ │ │ │ >>> wkb_w.write_hex(pnt) │ │ │ │ '0101000080000000000000F03F000000000000F03F000000000000F03F' │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -srid[source]
    │ │ │ │ +srid[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Set this property with a boolean to indicate whether the SRID of the │ │ │ │ geometry should be included with the WKB representation. Example:

    │ │ │ │
    >>> from django.contrib.gis.geos import Point, WKBWriter
    │ │ │ │  >>> wkb_w = WKBWriter()
    │ │ │ │  >>> pnt = Point(1, 1, srid=4326)
    │ │ │ │ @@ -1389,40 +1390,40 @@
    │ │ │ │  '0101000020E6100000000000000000F03F000000000000F03F'
    │ │ │ │  
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class WKTWriter(dim=2, trim=False, precision=None)[source]
    │ │ │ │ +class WKTWriter(dim=2, trim=False, precision=None)[sorgente] │ │ │ │

    This class allows outputting the WKT representation of a geometry. See the │ │ │ │ WKBWriter.outdim, trim, and precision attributes for │ │ │ │ details about the constructor arguments.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -write(geom)[source]
    │ │ │ │ +write(geom)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the WKT of the given geometry. Example:

    │ │ │ │
    >>> from django.contrib.gis.geos import Point, WKTWriter
    │ │ │ │  >>> pnt = Point(1, 1)
    │ │ │ │  >>> wkt_w = WKTWriter()
    │ │ │ │  >>> wkt_w.write(pnt)
    │ │ │ │  'POINT (1.0000000000000000 1.0000000000000000)'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -outdim[source]
    │ │ │ │ +outdim[sorgente] │ │ │ │

    See WKBWriter.outdim.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -trim[source]
    │ │ │ │ +trim[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    This property is used to enable or disable trimming of │ │ │ │ unnecessary decimals.

    │ │ │ │
    >>> from django.contrib.gis.geos import Point, WKTWriter
    │ │ │ │  >>> pnt = Point(1, 1)
    │ │ │ │  >>> wkt_w = WKTWriter()
    │ │ │ │ @@ -1433,15 +1434,15 @@
    │ │ │ │  >>> wkt_w.trim = True
    │ │ │ │  >>> wkt_w.write(pnt)
    │ │ │ │  'POINT (1 1)'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -precision[source]
    │ │ │ │ +precision[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    This property controls the rounding precision of coordinates; │ │ │ │ if set to None rounding is disabled.

    │ │ │ │
    >>> from django.contrib.gis.geos import Point, WKTWriter
    │ │ │ │  >>> pnt = Point(1.44, 1.66)
    │ │ │ │  >>> wkt_w = WKTWriter()
    │ │ │ │ @@ -1472,25 +1473,25 @@
    │ │ │ │  

    Settings

    │ │ │ │
    │ │ │ │

    GEOS_LIBRARY_PATH

    │ │ │ │

    A string specifying the location of the GEOS C library. Typically, │ │ │ │ this setting is only used if the GEOS C library is in a non-standard │ │ │ │ location (e.g., /home/bob/lib/libgeos_c.so).

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The setting must be the full path to the C shared library; in │ │ │ │ other words you want to use libgeos_c.so, not libgeos.so.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Exceptions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -exception GEOSException[source]
    │ │ │ │ +exception GEOSException[sorgente] │ │ │ │

    The base GEOS exception, indicates a GEOS-related error.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1557,37 +1558,37 @@ │ │ │ │
  • Exceptions
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Measurement Objects

    │ │ │ │ + title="capitolo precedente">Measurement Objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    GDAL API

    │ │ │ │ + title="capitolo successivo">GDAL API

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    5.1, 5.0, 4.3

    │ │ │ │

    Note that older or more recent versions of these libraries may also work │ │ │ │ totally fine with GeoDjango. Your mileage may vary.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The GeoDjango interfaces to GEOS, GDAL, and GeoIP may be used │ │ │ │ independently of Django. In other words, no database or settings file │ │ │ │ required – import them as normal from django.contrib.gis.

    │ │ │ │
    │ │ │ │

    On Debian/Ubuntu, you are advised to install the following packages which will │ │ │ │ install, directly or by dependency, the required geospatial libraries:

    │ │ │ │
    $ sudo apt-get install binutils libproj-dev gdal-bin
    │ │ │ │ @@ -140,30 +141,30 @@
    │ │ │ │  
    │ │ │ │

    Building from source

    │ │ │ │

    When installing from source on UNIX and GNU/Linux systems, please follow │ │ │ │ the installation instructions carefully, and install the libraries in the │ │ │ │ given order. If using MySQL or Oracle as the spatial database, only GEOS │ │ │ │ is required.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    On Linux platforms, it may be necessary to run the ldconfig command │ │ │ │ after installing each library. For example:

    │ │ │ │
    $ sudo make install
    │ │ │ │  $ sudo ldconfig
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    macOS users must install Xcode in order to compile software from source.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    GEOS

    │ │ │ │

    GEOS is a C++ library for performing geometric operations, and is the default │ │ │ │ -internal geometry representation used by GeoDjango (it’s behind the “lazy” │ │ │ │ +internal geometry representation used by GeoDjango (it’s behind the «lazy» │ │ │ │ geometries). Specifically, the C API library is called (e.g., libgeos_c.so) │ │ │ │ directly from Python using ctypes.

    │ │ │ │

    First, download GEOS from the GEOS website and untar the source archive:

    │ │ │ │
    $ wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
    │ │ │ │  $ tar xjf geos-X.Y.Z.tar.bz2
    │ │ │ │  
    │ │ │ │
    │ │ │ │ @@ -198,15 +199,15 @@ │ │ │ │ modify the system’s library path then the GEOS_LIBRARY_PATH │ │ │ │ setting may be added to your Django settings file with the full path to the │ │ │ │ GEOS C library. For example:

    │ │ │ │
    GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The setting must be the full path to the C shared library; in │ │ │ │ other words you want to use libgeos_c.so, not libgeos.so.

    │ │ │ │
    │ │ │ │

    See also My logs are filled with GEOS-related errors.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -349,37 +350,37 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    GeoDjango Installation

    │ │ │ │ + title="capitolo precedente">GeoDjango Installation

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Installing PostGIS

    │ │ │ │ + title="capitolo successivo">Installing PostGIS

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Right

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Right(expression, length, **extra)[source]
    │ │ │ │ +class Right(expression, length, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the last length characters of the given text field or expression.

    │ │ │ │

    Usage example:

    │ │ │ │
    >>> from django.db.models.functions import Right
    │ │ │ │  >>> Author.objects.create(name="Margaret Smith")
    │ │ │ │  >>> author = Author.objects.annotate(last_letter=Right("name", 1)).get()
    │ │ │ │ @@ -1843,55 +1844,55 @@
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    RPad

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class RPad(expression, length, fill_text=Value(' '), **extra)[source]
    │ │ │ │ +class RPad(expression, length, fill_text=Value(' '), **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Similar to LPad, but pads on the right │ │ │ │ side.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    RTrim

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class RTrim(expression, **extra)[source]
    │ │ │ │ +class RTrim(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Similar to Trim, but removes only trailing │ │ │ │ spaces.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    SHA1, SHA224, SHA256, SHA384, and SHA512

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class SHA1(expression, **extra)[source]
    │ │ │ │ +class SHA1(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class SHA224(expression, **extra)[source]
    │ │ │ │ +class SHA224(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class SHA256(expression, **extra)[source]
    │ │ │ │ +class SHA256(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class SHA384(expression, **extra)[source]
    │ │ │ │ +class SHA384(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class SHA512(expression, **extra)[source]
    │ │ │ │ +class SHA512(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Accepts a single text field or expression and returns the particular hash of │ │ │ │ the string.

    │ │ │ │

    They can also be registered as transforms as described in Length.

    │ │ │ │

    Usage example:

    │ │ │ │
    >>> from django.db.models.functions import SHA1
    │ │ │ │ @@ -1912,15 +1913,15 @@
    │ │ │ │  

    Oracle doesn’t support the SHA224 function.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    StrIndex

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class StrIndex(string, substring, **extra)[source]
    │ │ │ │ +class StrIndex(string, substring, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a positive integer corresponding to the 1-indexed position of the first │ │ │ │ occurrence of substring inside string, or 0 if substring is not │ │ │ │ found.

    │ │ │ │

    Usage example:

    │ │ │ │
    >>> from django.db.models import Value as V
    │ │ │ │ @@ -1935,26 +1936,26 @@
    │ │ │ │  >>> authors = Author.objects.annotate(smith_index=StrIndex("name", V("Smith"))).filter(
    │ │ │ │  ...     smith_index__gt=0
    │ │ │ │  ... )
    │ │ │ │  <QuerySet [<Author: Margaret Smith>, <Author: Smith, Margaret>]>
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    In MySQL, a database table’s collation determines │ │ │ │ whether string comparisons (such as the expression and substring of │ │ │ │ this function) are case-sensitive. Comparisons are case-insensitive by │ │ │ │ default.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Substr

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Substr(expression, pos, length=None, **extra)[source]
    │ │ │ │ +class Substr(expression, pos, length=None, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns a substring of length length from the field or expression starting │ │ │ │ at position pos. The position is 1-indexed, so the position must be greater │ │ │ │ than 0. If length is None, then the rest of the string will be returned.

    │ │ │ │

    Usage example:

    │ │ │ │
    >>> # Set the alias to the first 5 characters of the name as lowercase
    │ │ │ │ @@ -1967,15 +1968,15 @@
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Trim

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Trim(expression, **extra)[source]
    │ │ │ │ +class Trim(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the value of the given text field or expression with leading and │ │ │ │ trailing spaces removed.

    │ │ │ │

    Usage example:

    │ │ │ │
    >>> from django.db.models.functions import Trim
    │ │ │ │  >>> Author.objects.create(name="  John  ", alias="j")
    │ │ │ │ @@ -1986,15 +1987,15 @@
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Upper

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Upper(expression, **extra)[source]
    │ │ │ │ +class Upper(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Accepts a single text field or expression and returns the uppercase │ │ │ │ representation.

    │ │ │ │

    It can also be registered as a transform as described in Length.

    │ │ │ │

    Usage example:

    │ │ │ │
    >>> from django.db.models.functions import Upper
    │ │ │ │ @@ -2011,45 +2012,45 @@
    │ │ │ │  

    There are a number of functions to use in a │ │ │ │ Window expression for computing the rank │ │ │ │ of elements or the Ntile of some rows.

    │ │ │ │
    │ │ │ │

    CumeDist

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class CumeDist(*expressions, **extra)[source]
    │ │ │ │ +class CumeDist(*expressions, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Calculates the cumulative distribution of a value within a window or partition. │ │ │ │ The cumulative distribution is defined as the number of rows preceding or │ │ │ │ peered with the current row divided by the total number of rows in the frame.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    DenseRank

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class DenseRank(*expressions, **extra)[source]
    │ │ │ │ +class DenseRank(*expressions, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Equivalent to Rank but does not have gaps.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    FirstValue

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FirstValue(expression, **extra)[source]
    │ │ │ │ +class FirstValue(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Returns the value evaluated at the row that’s the first row of the window │ │ │ │ frame, or None if no such value exists.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Lag

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Lag(expression, offset=1, default=None, **extra)[source]
    │ │ │ │ +class Lag(expression, offset=1, default=None, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Calculates the value offset by offset, and if no row exists there, returns │ │ │ │ default.

    │ │ │ │

    default must have the same type as the expression, however, this is │ │ │ │ only validated by the database and not in Python.

    │ │ │ │
    │ │ │ │ @@ -2058,25 +2059,25 @@ │ │ │ │ the default parameter.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    LastValue

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class LastValue(expression, **extra)[source]
    │ │ │ │ +class LastValue(expression, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Comparable to FirstValue, it calculates the last value in a given │ │ │ │ frame clause.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Lead

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Lead(expression, offset=1, default=None, **extra)[source]
    │ │ │ │ +class Lead(expression, offset=1, default=None, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Calculates the leading value in a given frame. Both │ │ │ │ offset and default are evaluated with respect to the current row.

    │ │ │ │

    default must have the same type as the expression, however, this is │ │ │ │ only validated by the database and not in Python.

    │ │ │ │
    │ │ │ │ @@ -2085,40 +2086,40 @@ │ │ │ │ the default parameter.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    NthValue

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class NthValue(expression, nth=1, **extra)[source]
    │ │ │ │ +class NthValue(expression, nth=1, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Computes the row relative to the offset nth (must be a positive value) │ │ │ │ within the window. Returns None if no row exists.

    │ │ │ │

    Some databases may handle a nonexistent nth-value differently. For example, │ │ │ │ Oracle returns an empty string rather than None for character-based │ │ │ │ expressions. Django doesn’t do any conversions in these cases.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Ntile

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Ntile(num_buckets=1, **extra)[source]
    │ │ │ │ +class Ntile(num_buckets=1, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Calculates a partition for each of the rows in the frame clause, distributing │ │ │ │ numbers as evenly as possible between 1 and num_buckets. If the rows don’t │ │ │ │ divide evenly into a number of buckets, one or more buckets will be represented │ │ │ │ more frequently.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    PercentRank

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class PercentRank(*expressions, **extra)[source]
    │ │ │ │ +class PercentRank(*expressions, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Computes the relative rank of the rows in the frame clause. This computation is │ │ │ │ equivalent to evaluating:

    │ │ │ │
    (rank - 1) / (total rows - 1)
    │ │ │ │  
    │ │ │ │
    │ │ │ │ @@ -2178,26 +2179,26 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Rank

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Rank(*expressions, **extra)[source]
    │ │ │ │ +class Rank(*expressions, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Comparable to RowNumber, this function ranks rows in the window. The │ │ │ │ computed rank contains gaps. Use DenseRank to compute rank without │ │ │ │ gaps.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    RowNumber

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class RowNumber(*expressions, **extra)[source]
    │ │ │ │ +class RowNumber(*expressions, **extra)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Computes the row number according to the ordering of either the frame clause │ │ │ │ or the ordering of the whole query if there is no partitioning of the │ │ │ │ window frame.

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -2307,37 +2308,37 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Conditional Expressions

    │ │ │ │ + title="capitolo precedente">Conditional Expressions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Paginator

    │ │ │ │ + title="capitolo successivo">Paginator

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    The Aggregate API is as follows:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Aggregate(*expressions, output_field=None, distinct=False, filter=None, default=None, **extra)[source]
    │ │ │ │ +class Aggregate(*expressions, output_field=None, distinct=False, filter=None, default=None, **extra)[sorgente] │ │ │ │
    │ │ │ │
    │ │ │ │ template
    │ │ │ │

    A class attribute, as a format string, that describes the SQL that is │ │ │ │ generated for this aggregate. Defaults to │ │ │ │ '%(function)s(%(distinct)s%(expressions)s)'.

    │ │ │ │
    │ │ │ │ @@ -569,15 +570,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    Value() expressions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Value(value, output_field=None)[source]
    │ │ │ │ +class Value(value, output_field=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A Value() object represents the smallest possible component of an │ │ │ │ expression: a simple value. When you need to represent the value of an integer, │ │ │ │ boolean, or string within an expression, you can wrap that value within a │ │ │ │ Value().

    │ │ │ │

    You will rarely need to use Value() directly. When you write the expression │ │ │ │ @@ -594,15 +595,15 @@ │ │ │ │ an instance of datetime.datetime as value defaults │ │ │ │ output_field to DateTimeField.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    ExpressionWrapper() expressions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class ExpressionWrapper(expression, output_field)[source]
    │ │ │ │ +class ExpressionWrapper(expression, output_field)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    ExpressionWrapper surrounds another expression and provides access to │ │ │ │ properties, such as output_field, that may not be │ │ │ │ available on other expressions. ExpressionWrapper is necessary when using │ │ │ │ arithmetic on F() expressions with different types as described in │ │ │ │ Using F() with annotations.

    │ │ │ │ @@ -613,15 +614,15 @@ │ │ │ │ else logic in queries. Django natively supports SQL CASE │ │ │ │ expressions. For more details see Conditional Expressions.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Subquery() expressions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Subquery(queryset, output_field=None)[source]
    │ │ │ │ +class Subquery(queryset, output_field=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    You can add an explicit subquery to a QuerySet using the Subquery │ │ │ │ expression.

    │ │ │ │

    For example, to annotate each post with the email address of the author of the │ │ │ │ newest comment on that post:

    │ │ │ │
    >>> from django.db.models import OuterRef, Subquery
    │ │ │ │ @@ -635,25 +636,25 @@
    │ │ │ │      FROM "comment" U0
    │ │ │ │      WHERE U0."post_id" = ("post"."id")
    │ │ │ │      ORDER BY U0."created_at" DESC LIMIT 1
    │ │ │ │  ) AS "newest_commenter_email" FROM "post"
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The examples in this section are designed to show how to force │ │ │ │ Django to execute a subquery. In some cases it may be possible to │ │ │ │ write an equivalent queryset that performs the same task more │ │ │ │ clearly or efficiently.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Referencing columns from the outer queryset

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class OuterRef(field)[source]
    │ │ │ │ +class OuterRef(field)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Use OuterRef when a queryset in a Subquery needs to refer to a field │ │ │ │ from the outer query or its transform. It acts like an F expression │ │ │ │ except that the check to see if it refers to a valid field isn’t made until the │ │ │ │ outer queryset is resolved.

    │ │ │ │

    Instances of OuterRef may be used in conjunction with nested instances │ │ │ │ @@ -693,15 +694,15 @@ │ │ │ │ OuterRef cannot be resolved until the queryset is used within a │ │ │ │ Subquery.)

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Exists() subqueries

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Exists(queryset)[source]
    │ │ │ │ +class Exists(queryset)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Exists is a Subquery subclass that uses an SQL EXISTS statement. In │ │ │ │ many cases it will perform better than a subquery since the database is able to │ │ │ │ stop evaluation of the subquery when a first matching row is found.

    │ │ │ │

    For example, to annotate each post with whether or not it has a comment from │ │ │ │ within the last day:

    │ │ │ │ @@ -770,15 +771,15 @@ │ │ │ │ there is an OuterRef, this will not be possible to resolve).

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Raw SQL expressions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class RawSQL(sql, params, output_field=None)[source]
    │ │ │ │ +class RawSQL(sql, params, output_field=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Sometimes database expressions can’t easily express a complex WHERE clause. │ │ │ │ In these edge cases, use the RawSQL expression. For example:

    │ │ │ │
    >>> from django.db.models.expressions import RawSQL
    │ │ │ │  >>> queryset.annotate(val=RawSQL("select col from sometable where othercol = %s", (param,)))
    │ │ │ │  
    │ │ │ │ @@ -787,15 +788,15 @@ │ │ │ │ you’re explicitly writing SQL code) and violate the DRY principle, so you │ │ │ │ should avoid them if possible.

    │ │ │ │

    RawSQL expressions can also be used as the target of __in filters:

    │ │ │ │
    >>> queryset.filter(id__in=RawSQL("select id from sometable where col = %s", (param,)))
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    To protect against SQL injection attacks, you must escape any │ │ │ │ parameters that the user can control by using params. params is a │ │ │ │ required argument to force you to acknowledge that you’re not interpolating │ │ │ │ your SQL with user-provided data.

    │ │ │ │

    You also must not quote placeholders in the SQL string. This example is │ │ │ │ vulnerable to SQL injection because of the quotes around %s:

    │ │ │ │
    RawSQL("select col from sometable where othercol = '%s'")  # unsafe!
    │ │ │ │ @@ -811,15 +812,15 @@
    │ │ │ │  by the group by, window functions operate on frames and
    │ │ │ │  partitions, and compute the result for each row.

    │ │ │ │

    You can specify multiple windows in the same query which in Django ORM would be │ │ │ │ equivalent to including multiple expressions in a QuerySet.annotate() call. The ORM doesn’t make use of named windows, │ │ │ │ instead they are part of the selected columns.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Window(expression, partition_by=None, order_by=None, frame=None, output_field=None)[source]
    │ │ │ │ +class Window(expression, partition_by=None, order_by=None, frame=None, output_field=None)[sorgente] │ │ │ │
    │ │ │ │
    │ │ │ │ template
    │ │ │ │

    Defaults to %(expression)s OVER (%(window)s). If only the │ │ │ │ expression argument is provided, the window clause will be blank.

    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -908,15 +909,15 @@ │ │ │ │ documentation for your database as needed.

    │ │ │ │
    │ │ │ │

    Frames

    │ │ │ │

    For a window frame, you can choose either a range-based sequence of rows or an │ │ │ │ ordinary sequence of rows.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class ValueRange(start=None, end=None, exclusion=None)[source]
    │ │ │ │ +class ValueRange(start=None, end=None, exclusion=None)[sorgente] │ │ │ │
    │ │ │ │
    │ │ │ │ frame_type
    │ │ │ │

    This attribute is set to 'RANGE'.

    │ │ │ │
    │ │ │ │ │ │ │ │

    PostgreSQL has limited support for ValueRange and only supports use of │ │ │ │ @@ -925,15 +926,15 @@ │ │ │ │

    │ │ │ │ Changed in Django 5.1:

    The exclusion argument was added.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class RowRange(start=None, end=None, exclusion=None)[source]
    │ │ │ │ +class RowRange(start=None, end=None, exclusion=None)[sorgente] │ │ │ │
    │ │ │ │
    │ │ │ │ frame_type
    │ │ │ │

    This attribute is set to 'ROWS'.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -943,15 +944,15 @@ │ │ │ │ │ │ │ │

    Both classes return SQL with the template:

    │ │ │ │
    %(frame_type)s BETWEEN %(start)s AND %(end)s
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -class WindowFrameExclusion[source]
    │ │ │ │ +class WindowFrameExclusion[sorgente] │ │ │ │
    │ │ │ │ New in Django 5.1.
    │ │ │ │
    │ │ │ │
    │ │ │ │ CURRENT_ROW
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -1001,15 +1002,15 @@ │ │ │ │ RANGE mode, the frame starts or ends at the first or last peer according to │ │ │ │ the ordering clause. Thus, RANGE CURRENT ROW evaluates the expression for │ │ │ │ rows which have the same value specified by the ordering. Because the template │ │ │ │ includes both the start and end points, this may be expressed with:

    │ │ │ │
    ValueRange(start=0, end=0)
    │ │ │ │  
    │ │ │ │
    │ │ │ │ -

    If a movie’s “peers” are described as movies released by the same studio in the │ │ │ │ +

    If a movie’s «peers» are described as movies released by the same studio in the │ │ │ │ same genre in the same year, this RowRange example annotates each movie │ │ │ │ with the average rating of a movie’s two prior and two following peers:

    │ │ │ │
    >>> from django.db.models import Avg, F, RowRange, Window
    │ │ │ │  >>> Movie.objects.annotate(
    │ │ │ │  ...     avg_rating=Window(
    │ │ │ │  ...         expression=Avg("rating"),
    │ │ │ │  ...         partition_by=[F("studio"), F("genre")],
    │ │ │ │ @@ -1054,15 +1055,15 @@
    │ │ │ │  but also expose a number of extra methods and attributes listed below. All
    │ │ │ │  query expressions must inherit from Expression() or a relevant
    │ │ │ │  subclass.

    │ │ │ │

    When a query expression wraps another expression, it is responsible for │ │ │ │ calling the appropriate methods on the wrapped expression.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Expression[source]
    │ │ │ │ +class Expression[sorgente] │ │ │ │
    │ │ │ │
    │ │ │ │ allowed_default
    │ │ │ │
    │ │ │ │ New in Django 5.0.
    │ │ │ │

    Tells Django that this expression can be used in │ │ │ │ Field.db_default. Defaults to False.

    │ │ │ │ @@ -1453,37 +1454,37 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Lookup API reference

    │ │ │ │ + title="capitolo precedente">Lookup API reference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Conditional Expressions

    │ │ │ │ + title="capitolo successivo">Conditional Expressions

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    choices

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Field.choices[source]
    │ │ │ │ +Field.choices[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A mapping or iterable in the format described below to use as choices for this │ │ │ │ field. If choices are given, they’re enforced by │ │ │ │ model validation and the default form widget will │ │ │ │ be a select box with these choices instead of the standard text field.

    │ │ │ │

    If a mapping is given, the key element is the actual value to be set on the │ │ │ │ @@ -277,15 +278,15 @@ │ │ │ │ │ │ │ │

    Note that choices can be any sequence object – not necessarily a list or │ │ │ │ tuple. This lets you construct choices dynamically. But if you find yourself │ │ │ │ hacking choices to be dynamic, you’re probably better off using │ │ │ │ a proper database table with a ForeignKey. choices is │ │ │ │ meant for static data that doesn’t change much, if ever.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    A new migration is created each time the order of choices changes.

    │ │ │ │
    │ │ │ │

    For each model field that has choices set, Django will normalize │ │ │ │ the choices to a list of 2-tuples and add a method to retrieve the │ │ │ │ human-readable name for the field’s current value. See │ │ │ │ get_FOO_display() in the database API │ │ │ │ documentation.

    │ │ │ │ @@ -335,15 +336,15 @@ │ │ │ │ data type. If a tuple is not provided, or the last item is not a (lazy) │ │ │ │ string, the label is automatically generated from the member name.

    │ │ │ │
  • A .label property is added on values, to return the human-readable name.

  • │ │ │ │
  • A number of custom properties are added to the enumeration classes – │ │ │ │ .choices, .labels, .values, and .names – to make it easier │ │ │ │ to access lists of those separate parts of the enumeration.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    These property names cannot be used as member names as they would conflict.

    │ │ │ │
    │ │ │ │
  • │ │ │ │
  • The use of enum.unique() is enforced to ensure that values cannot be │ │ │ │ defined multiple times. This is unlikely to be expected in choices for a │ │ │ │ field.

  • │ │ │ │ │ │ │ │ @@ -497,15 +498,15 @@ │ │ │ │ future.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    db_tablespace

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Field.db_tablespace[source]
    │ │ │ │ +Field.db_tablespace[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The name of the database tablespace to use for │ │ │ │ this field’s index, if this field is indexed. The default is the project’s │ │ │ │ DEFAULT_INDEX_TABLESPACE setting, if set, or the │ │ │ │ db_tablespace of the model, if any. If the backend doesn’t │ │ │ │ support tablespaces for indexes, this option is ignored.

    │ │ │ │ @@ -554,15 +555,15 @@ │ │ │ │ ModelForm. They are also skipped during model │ │ │ │ validation. Default is True.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    error_messages

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Field.error_messages[source]
    │ │ │ │ +Field.error_messages[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The error_messages argument lets you override the default messages that the │ │ │ │ field will raise. Pass in a dictionary with keys matching the error messages you │ │ │ │ want to override.

    │ │ │ │

    Error message keys include null, blank, invalid, invalid_choice, │ │ │ │ unique, and unique_for_date. Additional error message keys are │ │ │ │ @@ -573,15 +574,15 @@ │ │ │ │

    │ │ │ │

    help_text

    │ │ │ │
    │ │ │ │
    │ │ │ │ Field.help_text
    │ │ │ │
    │ │ │ │ │ │ │ │ -

    Extra “help” text to be displayed with the form widget. It’s useful for │ │ │ │ +

    Extra «help» text to be displayed with the form widget. It’s useful for │ │ │ │ documentation even if your field isn’t used on a form.

    │ │ │ │

    Note that this value is not HTML-escaped in automatically-generated │ │ │ │ forms. This lets you include HTML in help_text if you so │ │ │ │ desire. For example:

    │ │ │ │
    help_text = "Please use the following format: <em>YYYY-MM-DD</em>."
    │ │ │ │  
    │ │ │ │
    │ │ │ │ @@ -614,15 +615,15 @@ │ │ │ │

    The primary key field is set to None when │ │ │ │ deleting an object.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    unique

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Field.unique[source]
    │ │ │ │ +Field.unique[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    If True, this field must be unique throughout the table.

    │ │ │ │

    This is enforced at the database level and by model validation. If │ │ │ │ you try to save a model with a duplicate value in a unique │ │ │ │ field, a django.db.IntegrityError will be raised by the model’s │ │ │ │ save() method.

    │ │ │ │ @@ -683,62 +684,62 @@ │ │ │ │ will automatically create it using the field’s attribute name, converting │ │ │ │ underscores to spaces. See Verbose field names.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    validators

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Field.validators[source]
    │ │ │ │ +Field.validators[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A list of validators to run for this field. See the validators │ │ │ │ documentation for more information.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Field types

    │ │ │ │
    │ │ │ │

    AutoField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class AutoField(**options)[source]
    │ │ │ │ +class AutoField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    An IntegerField that automatically increments │ │ │ │ according to available IDs. You usually won’t need to use this directly; a │ │ │ │ primary key field will automatically be added to your model if you don’t specify │ │ │ │ otherwise. See Automatic primary key fields.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    BigAutoField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class BigAutoField(**options)[source]
    │ │ │ │ +class BigAutoField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A 64-bit integer, much like an AutoField except that it is │ │ │ │ guaranteed to fit numbers from 1 to 9223372036854775807.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    BigIntegerField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class BigIntegerField(**options)[source]
    │ │ │ │ +class BigIntegerField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A 64-bit integer, much like an IntegerField except that it is │ │ │ │ guaranteed to fit numbers from -9223372036854775808 to │ │ │ │ 9223372036854775807. The default form widget for this field is a │ │ │ │ NumberInput.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    BinaryField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class BinaryField(max_length=None, **options)[source]
    │ │ │ │ +class BinaryField(max_length=None, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A field to store raw binary data. It can be assigned bytes, │ │ │ │ bytearray, or memoryview.

    │ │ │ │

    By default, BinaryField sets editable to False, in which │ │ │ │ case it can’t be included in a ModelForm.

    │ │ │ │
    │ │ │ │ @@ -756,28 +757,28 @@ │ │ │ │ proper static files handling.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    BooleanField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class BooleanField(**options)[source]
    │ │ │ │ +class BooleanField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A true/false field.

    │ │ │ │

    The default form widget for this field is CheckboxInput, │ │ │ │ or NullBooleanSelect if null=True.

    │ │ │ │

    The default value of BooleanField is None when Field.default │ │ │ │ isn’t defined.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    CharField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class CharField(max_length=None, **options)[source]
    │ │ │ │ +class CharField(max_length=None, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A string field, for small- to large-sized strings.

    │ │ │ │

    For large amounts of text, use TextField.

    │ │ │ │

    The default form widget for this field is a TextInput.

    │ │ │ │

    CharField has the following extra arguments:

    │ │ │ │
    │ │ │ │ @@ -785,28 +786,28 @@ │ │ │ │ CharField.max_length │ │ │ │

    The maximum length (in characters) of the field. The max_length │ │ │ │ is enforced at the database level and in Django’s validation using │ │ │ │ MaxLengthValidator. It’s required for all │ │ │ │ database backends included with Django except PostgreSQL, which supports │ │ │ │ unlimited VARCHAR columns.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    If you are writing an application that must be portable to multiple │ │ │ │ database backends, you should be aware that there are restrictions on │ │ │ │ max_length for some backends. Refer to the database backend │ │ │ │ notes for details.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ CharField.db_collation
    │ │ │ │

    Optional. The database collation name of the field.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Collation names are not standardized. As such, this will not be │ │ │ │ portable across multiple database backends.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Oracle

    │ │ │ │

    Oracle supports collations only when the MAX_STRING_SIZE database │ │ │ │ initialization parameter is set to EXTENDED.

    │ │ │ │ @@ -814,24 +815,24 @@ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    DateField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class DateField(auto_now=False, auto_now_add=False, **options)[source]
    │ │ │ │ +class DateField(auto_now=False, auto_now_add=False, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A date, represented in Python by a datetime.date instance. Has a few extra, │ │ │ │ optional arguments:

    │ │ │ │
    │ │ │ │
    │ │ │ │ DateField.auto_now
    │ │ │ │

    Automatically set the field to now every time the object is saved. Useful │ │ │ │ -for “last-modified” timestamps. Note that the current date is always │ │ │ │ +for «last-modified» timestamps. Note that the current date is always │ │ │ │ used; it’s not just a default value that you can override.

    │ │ │ │

    The field is only automatically updated when calling Model.save(). The field isn’t updated when making updates │ │ │ │ to other fields in other ways such as QuerySet.update(), though you can specify a custom │ │ │ │ value for the field in an update like that.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -849,73 +850,73 @@ │ │ │ │
  • For DateTimeField: default=timezone.now - from │ │ │ │ django.utils.timezone.now()

  • │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    The default form widget for this field is a │ │ │ │ DateInput. The admin adds a JavaScript calendar, │ │ │ │ -and a shortcut for “Today”. Includes an additional invalid_date error │ │ │ │ +and a shortcut for «Today». Includes an additional invalid_date error │ │ │ │ message key.

    │ │ │ │

    The options auto_now_add, auto_now, and default are mutually exclusive. │ │ │ │ Any combination of these options will result in an error.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    As currently implemented, setting auto_now or auto_now_add to │ │ │ │ True will cause the field to have editable=False and blank=True │ │ │ │ set.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The auto_now and auto_now_add options will always use the date in │ │ │ │ the default timezone at the moment of │ │ │ │ creation or update. If you need something different, you may want to │ │ │ │ consider using your own callable default or overriding save() instead │ │ │ │ of using auto_now or auto_now_add; or using a DateTimeField │ │ │ │ instead of a DateField and deciding how to handle the conversion from │ │ │ │ datetime to date at display time.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Always use DateField with a datetime.date instance.

    │ │ │ │

    If you have a datetime.datetime instance, it’s recommended to convert │ │ │ │ it to a datetime.date first. If you don’t, DateField will │ │ │ │ localize the datetime.datetime to the default timezone and convert it to a datetime.date │ │ │ │ instance, removing its time component. This is true for both storage and │ │ │ │ comparison.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    DateTimeField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class DateTimeField(auto_now=False, auto_now_add=False, **options)[source]
    │ │ │ │ +class DateTimeField(auto_now=False, auto_now_add=False, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A date and time, represented in Python by a datetime.datetime instance. │ │ │ │ Takes the same extra arguments as DateField.

    │ │ │ │

    The default form widget for this field is a single │ │ │ │ DateTimeInput. The admin uses two separate │ │ │ │ TextInput widgets with JavaScript shortcuts.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Always use DateTimeField with a datetime.datetime │ │ │ │ instance.

    │ │ │ │

    If you have a datetime.date instance, it’s recommended to convert it to │ │ │ │ a datetime.datetime first. If you don’t, DateTimeField will │ │ │ │ use midnight in the default timezone for │ │ │ │ the time component. This is true for both storage and comparison. To │ │ │ │ compare the date portion of a DateTimeField with a │ │ │ │ datetime.date instance, use the date lookup.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    DecimalField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class DecimalField(max_digits=None, decimal_places=None, **options)[source]
    │ │ │ │ +class DecimalField(max_digits=None, decimal_places=None, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A fixed-precision decimal number, represented in Python by a │ │ │ │ Decimal instance. It validates the input using │ │ │ │ DecimalValidator.

    │ │ │ │

    Has the following required arguments:

    │ │ │ │
    │ │ │ │ @@ -941,60 +942,60 @@ │ │ │ │
    models.DecimalField(..., max_digits=19, decimal_places=10)
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    The default form widget for this field is a NumberInput │ │ │ │ when localize is False or │ │ │ │ TextInput otherwise.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    For more information about the differences between the │ │ │ │ FloatField and DecimalField classes, please │ │ │ │ see FloatField vs. DecimalField. You │ │ │ │ should also be aware of SQLite limitations │ │ │ │ of decimal fields.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    DurationField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class DurationField(**options)[source]
    │ │ │ │ +class DurationField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A field for storing periods of time - modeled in Python by │ │ │ │ timedelta. When used on PostgreSQL, the data type │ │ │ │ used is an interval and on Oracle the data type is INTERVAL DAY(9) TO │ │ │ │ SECOND(6). Otherwise a bigint of microseconds is used.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Arithmetic with DurationField works in most cases. However on all │ │ │ │ databases other than PostgreSQL, comparing the value of a DurationField │ │ │ │ to arithmetic on DateTimeField instances will not work as expected.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    EmailField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class EmailField(max_length=254, **options)[source]
    │ │ │ │ +class EmailField(max_length=254, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A CharField that checks that the value is a valid email address using │ │ │ │ EmailValidator.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    FileField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FileField(upload_to='', storage=None, max_length=100, **options)[source]
    │ │ │ │ +class FileField(upload_to='', storage=None, max_length=100, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A file-upload field.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The primary_key argument isn’t supported and will raise an error if │ │ │ │ used.

    │ │ │ │
    │ │ │ │

    Has the following optional arguments:

    │ │ │ │
    │ │ │ │
    │ │ │ │ FileField.upload_to
    │ │ │ │ @@ -1097,15 +1098,15 @@ │ │ │ │

    If you wanted to retrieve the uploaded file’s on-disk filename, or the file’s │ │ │ │ size, you could use the name and │ │ │ │ size attributes respectively; for more │ │ │ │ information on the available attributes and methods, see the │ │ │ │ File class reference and the Managing files │ │ │ │ topic guide.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The file is saved as part of saving the model in the database, so the actual │ │ │ │ file name used on disk cannot be relied on until after the model has been │ │ │ │ saved.

    │ │ │ │
    │ │ │ │

    The uploaded file’s relative URL can be obtained using the │ │ │ │ url attribute. Internally, │ │ │ │ this calls the url() method of the │ │ │ │ @@ -1123,15 +1124,15 @@ │ │ │ │

    FileField instances are created in your database as varchar │ │ │ │ columns with a default max length of 100 characters. As with other fields, you │ │ │ │ can change the maximum length using the max_length argument.

    │ │ │ │
    │ │ │ │

    FileField and FieldFile

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FieldFile[source]
    │ │ │ │ +class FieldFile[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    When you access a FileField on a model, you are │ │ │ │ given an instance of FieldFile as a proxy for accessing the underlying │ │ │ │ file.

    │ │ │ │

    The API of FieldFile mirrors that of File, │ │ │ │ with one key difference: The object wrapped by the class is not necessarily a │ │ │ │ @@ -1139,70 +1140,70 @@ │ │ │ │ the result of the Storage.open() │ │ │ │ method, which may be a File object, or it may be a │ │ │ │ custom storage’s implementation of the File API.

    │ │ │ │

    In addition to the API inherited from File such as │ │ │ │ read() and write(), FieldFile includes several methods that │ │ │ │ can be used to interact with the underlying file:

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Two methods of this class, save() and │ │ │ │ delete(), default to saving the model object of the │ │ │ │ associated FieldFile in the database.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ FieldFile.name
    │ │ │ │
    │ │ │ │ │ │ │ │

    The name of the file including the relative path from the root of the │ │ │ │ Storage of the associated │ │ │ │ FileField.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -FieldFile.path[source]
    │ │ │ │ +FieldFile.path[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A read-only property to access the file’s local filesystem path by calling the │ │ │ │ path() method of the underlying │ │ │ │ Storage class.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -FieldFile.size[source]
    │ │ │ │ +FieldFile.size[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The result of the underlying Storage.size() method.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -FieldFile.url[source]
    │ │ │ │ +FieldFile.url[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A read-only property to access the file’s relative URL by calling the │ │ │ │ url() method of the underlying │ │ │ │ Storage class.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -FieldFile.open(mode='rb')[source]
    │ │ │ │ +FieldFile.open(mode='rb')[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Opens or reopens the file associated with this instance in the specified │ │ │ │ mode. Unlike the standard Python open() method, it doesn’t return a │ │ │ │ file descriptor.

    │ │ │ │

    Since the underlying file is opened implicitly when accessing it, it may be │ │ │ │ unnecessary to call this method except to reset the pointer to the underlying │ │ │ │ file or to change the mode.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -FieldFile.close()[source]
    │ │ │ │ +FieldFile.close()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Behaves like the standard Python file.close() method and closes the file │ │ │ │ associated with this instance.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -FieldFile.save(name, content, save=True)[source]
    │ │ │ │ +FieldFile.save(name, content, save=True)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    This method takes a filename and file contents and passes them to the storage │ │ │ │ class for the field, then associates the stored file with the model field. │ │ │ │ If you want to manually associate file data with │ │ │ │ FileField instances on your model, the save() │ │ │ │ method is used to persist that file data.

    │ │ │ │ @@ -1227,15 +1228,15 @@ │ │ │ │ │ │ │ │ myfile = ContentFile("hello world") │ │ │ │ │ │ │ │ │ │ │ │

    For more information, see Managing files.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -FieldFile.delete(save=True)[source]
    │ │ │ │ +FieldFile.delete(save=True)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Deletes the file associated with this instance and clears all attributes on │ │ │ │ the field. Note: This method will close the file if it happens to be open when │ │ │ │ delete() is called.

    │ │ │ │

    The optional save argument controls whether or not the model instance is │ │ │ │ saved after the file associated with this field has been deleted. Defaults to │ │ │ │ @@ -1246,15 +1247,15 @@ │ │ │ │ periodically via e.g. cron).

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    FilePathField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FilePathField(path='', match=None, recursive=False, allow_files=True, allow_folders=False, max_length=100, **options)[source]
    │ │ │ │ +class FilePathField(path='', match=None, recursive=False, allow_files=True, allow_folders=False, max_length=100, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A CharField whose choices are limited to the filenames in a certain │ │ │ │ directory on the filesystem. Has some special arguments, of which the first is │ │ │ │ required:

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -1322,15 +1323,15 @@ │ │ │ │ columns with a default max length of 100 characters. As with other fields, you │ │ │ │ can change the maximum length using the max_length argument.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    FloatField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FloatField(**options)[source]
    │ │ │ │ +class FloatField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A floating-point number represented in Python by a float instance.

    │ │ │ │

    The default form widget for this field is a NumberInput │ │ │ │ when localize is False or │ │ │ │ TextInput otherwise.

    │ │ │ │
    │ │ │ │ @@ -1345,15 +1346,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │

    GeneratedField

    │ │ │ │
    │ │ │ │ New in Django 5.0.
    │ │ │ │
    │ │ │ │
    │ │ │ │ -class GeneratedField(expression, output_field, db_persist=None, **kwargs)[source]
    │ │ │ │ +class GeneratedField(expression, output_field, db_persist=None, **kwargs)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A field that is always computed based on other fields in the model. This field │ │ │ │ is managed and updated by the database itself. Uses the GENERATED ALWAYS │ │ │ │ SQL syntax.

    │ │ │ │

    There are two kinds of generated columns: stored and virtual. A stored │ │ │ │ generated column is computed when it is written (inserted or updated) and │ │ │ │ @@ -1404,15 +1405,15 @@ │ │ │ │ docs.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    GenericIPAddressField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class GenericIPAddressField(protocol='both', unpack_ipv4=False, **options)[source]
    │ │ │ │ +class GenericIPAddressField(protocol='both', unpack_ipv4=False, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    An IPv4 or IPv6 address, in string format (e.g. 192.0.2.30 or │ │ │ │ 2a02:42fe::4). The default form widget for this field is a │ │ │ │ TextInput.

    │ │ │ │

    The IPv6 address normalization follows RFC 4291#section-2.2 section 2.2, │ │ │ │ including using the IPv4 format suggested in paragraph 3 of that section, like │ │ │ │ @@ -1439,15 +1440,15 @@ │ │ │ │

    If you allow for blank values, you have to allow for null values since blank │ │ │ │ values are stored as null.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    ImageField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class ImageField(upload_to=None, height_field=None, width_field=None, max_length=100, **options)[source]
    │ │ │ │ +class ImageField(upload_to=None, height_field=None, width_field=None, max_length=100, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Inherits all attributes and methods from FileField, but also │ │ │ │ validates that the uploaded object is a valid image.

    │ │ │ │

    In addition to the special attributes that are available for FileField, │ │ │ │ an ImageField also has height and width attributes.

    │ │ │ │

    To facilitate querying on those attributes, ImageField has the │ │ │ │ @@ -1473,15 +1474,15 @@ │ │ │ │

    The default form widget for this field is a │ │ │ │ ClearableFileInput.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    IntegerField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class IntegerField(**options)[source]
    │ │ │ │ +class IntegerField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    An integer. Values from -2147483648 to 2147483647 are safe in all │ │ │ │ databases supported by Django.

    │ │ │ │

    It uses MinValueValidator and │ │ │ │ MaxValueValidator to validate the input based │ │ │ │ on the values that the default database supports.

    │ │ │ │ @@ -1489,15 +1490,15 @@ │ │ │ │ when localize is False or │ │ │ │ TextInput otherwise.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    JSONField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class JSONField(encoder=None, decoder=None, **options)[source]
    │ │ │ │ +class JSONField(encoder=None, decoder=None, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A field for storing JSON encoded data. In Python the data is represented in its │ │ │ │ Python native format: dictionaries, lists, strings, numbers, booleans and │ │ │ │ None.

    │ │ │ │

    JSONField is supported on MariaDB, MySQL, Oracle, PostgreSQL, and SQLite │ │ │ │ (with the JSON1 extension enabled).

    │ │ │ │ @@ -1557,48 +1558,48 @@ │ │ │ │ list) are supported.

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    PositiveBigIntegerField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class PositiveBigIntegerField(**options)[source]
    │ │ │ │ +class PositiveBigIntegerField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Like a PositiveIntegerField, but only allows values under a certain │ │ │ │ (database-dependent) point. Values from 0 to 9223372036854775807 are │ │ │ │ safe in all databases supported by Django.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    PositiveIntegerField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class PositiveIntegerField(**options)[source]
    │ │ │ │ +class PositiveIntegerField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Like an IntegerField, but must be either positive or zero (0). │ │ │ │ Values from 0 to 2147483647 are safe in all databases supported by │ │ │ │ Django. The value 0 is accepted for backward compatibility reasons.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    PositiveSmallIntegerField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class PositiveSmallIntegerField(**options)[source]
    │ │ │ │ +class PositiveSmallIntegerField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Like a PositiveIntegerField, but only allows values under a certain │ │ │ │ (database-dependent) point. Values from 0 to 32767 are safe in all │ │ │ │ databases supported by Django.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    SlugField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class SlugField(max_length=50, **options)[source]
    │ │ │ │ +class SlugField(max_length=50, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Slug is a newspaper term. A slug is a short label for something, │ │ │ │ containing only letters, numbers, underscores or hyphens. They’re generally used │ │ │ │ in URLs.

    │ │ │ │

    Like a CharField, you can specify max_length (read the note │ │ │ │ about database portability and max_length in that section, │ │ │ │ @@ -1618,92 +1619,92 @@ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │
    │ │ │ │

    SmallAutoField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class SmallAutoField(**options)[source]
    │ │ │ │ +class SmallAutoField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Like an AutoField, but only allows values under a certain │ │ │ │ (database-dependent) limit. Values from 1 to 32767 are safe in all │ │ │ │ databases supported by Django.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    SmallIntegerField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class SmallIntegerField(**options)[source]
    │ │ │ │ +class SmallIntegerField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    Like an IntegerField, but only allows values under a certain │ │ │ │ (database-dependent) point. Values from -32768 to 32767 are safe in all │ │ │ │ databases supported by Django.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    TextField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class TextField(**options)[source]
    │ │ │ │ +class TextField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A large text field. The default form widget for this field is a │ │ │ │ Textarea.

    │ │ │ │

    If you specify a max_length attribute, it will be reflected in the │ │ │ │ Textarea widget of the auto-generated form field. │ │ │ │ However it is not enforced at the model or database level. Use a │ │ │ │ CharField for that.

    │ │ │ │
    │ │ │ │
    │ │ │ │ TextField.db_collation
    │ │ │ │

    Optional. The database collation name of the field.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Collation names are not standardized. As such, this will not be │ │ │ │ portable across multiple database backends.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Oracle

    │ │ │ │

    Oracle does not support collations for a TextField.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    TimeField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class TimeField(auto_now=False, auto_now_add=False, **options)[source]
    │ │ │ │ +class TimeField(auto_now=False, auto_now_add=False, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A time, represented in Python by a datetime.time instance. Accepts the same │ │ │ │ auto-population options as DateField.

    │ │ │ │

    The default form widget for this field is a TimeInput. │ │ │ │ The admin adds some JavaScript shortcuts.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    URLField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class URLField(max_length=200, **options)[source]
    │ │ │ │ +class URLField(max_length=200, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A CharField for a URL, validated by │ │ │ │ URLValidator.

    │ │ │ │

    The default form widget for this field is a URLInput.

    │ │ │ │

    Like all CharField subclasses, URLField takes the optional │ │ │ │ max_length argument. If you don’t specify │ │ │ │ max_length, a default of 200 is used.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    UUIDField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class UUIDField(**options)[source]
    │ │ │ │ +class UUIDField(**options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A field for storing universally unique identifiers. Uses Python’s │ │ │ │ UUID class. When used on PostgreSQL and MariaDB 10.7+, │ │ │ │ this stores in a uuid datatype, otherwise in a char(32).

    │ │ │ │

    Universally unique identifiers are a good alternative to AutoField for │ │ │ │ primary_key. The database will not generate the UUID for you, so │ │ │ │ @@ -1732,15 +1733,15 @@ │ │ │ │

    │ │ │ │

    Relationship fields

    │ │ │ │

    Django also defines a set of fields that represent relations.

    │ │ │ │
    │ │ │ │

    ForeignKey

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class ForeignKey(to, on_delete, **options)[source]
    │ │ │ │ +class ForeignKey(to, on_delete, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A many-to-one relationship. Requires two positional arguments: the class to │ │ │ │ which the model is related and the on_delete option.

    │ │ │ │

    To create a recursive relationship – an object that has a many-to-one │ │ │ │ relationship with itself – use models.ForeignKey('self', │ │ │ │ on_delete=models.CASCADE).

    │ │ │ │ @@ -1847,36 +1848,36 @@ │ │ │ │ │ │ │ │ │ │ │ │

    The possible values for on_delete are found in │ │ │ │ django.db.models:

    │ │ │ │
      │ │ │ │
    • │ │ │ │
      │ │ │ │ -CASCADE[source]
      │ │ │ │ +CASCADE[sorgente] │ │ │ │

      Cascade deletes. Django emulates the behavior of the SQL constraint ON │ │ │ │ DELETE CASCADE and also deletes the object containing the ForeignKey.

      │ │ │ │

      Model.delete() isn’t called on related models, but the │ │ │ │ pre_delete and │ │ │ │ post_delete signals are sent for all │ │ │ │ deleted objects.

      │ │ │ │
      │ │ │ │ │ │ │ │
    • │ │ │ │
    • │ │ │ │
      │ │ │ │ -PROTECT[source]
      │ │ │ │ +PROTECT[sorgente] │ │ │ │

      Prevent deletion of the referenced object by raising │ │ │ │ ProtectedError, a subclass of │ │ │ │ django.db.IntegrityError.

      │ │ │ │
      │ │ │ │ │ │ │ │
    • │ │ │ │
    • │ │ │ │
      │ │ │ │ -RESTRICT[source]
      │ │ │ │ +RESTRICT[sorgente] │ │ │ │

      Prevent deletion of the referenced object by raising │ │ │ │ RestrictedError (a subclass of │ │ │ │ django.db.IntegrityError). Unlike PROTECT, deletion of the │ │ │ │ referenced object is allowed if it also references a different object │ │ │ │ that is being deleted in the same operation, but via a CASCADE │ │ │ │ relationship.

      │ │ │ │

      Consider this set of models:

      │ │ │ │ @@ -1911,31 +1912,31 @@ │ │ │ │ │ │ │ │ │ │ │ │
      │ │ │ │ │ │ │ │
    • │ │ │ │
    • │ │ │ │
      │ │ │ │ -SET_NULL[source]
      │ │ │ │ +SET_NULL[sorgente] │ │ │ │

      Set the ForeignKey null; this is only possible if │ │ │ │ null is True.

      │ │ │ │
      │ │ │ │ │ │ │ │
    • │ │ │ │
    • │ │ │ │
      │ │ │ │ -SET_DEFAULT[source]
      │ │ │ │ +SET_DEFAULT[sorgente] │ │ │ │

      Set the ForeignKey to its default value; a default for the │ │ │ │ ForeignKey must be set.

      │ │ │ │
      │ │ │ │ │ │ │ │
    • │ │ │ │
    • │ │ │ │
      │ │ │ │ -SET()[source]
      │ │ │ │ +SET()[sorgente] │ │ │ │

      Set the ForeignKey to the value passed to │ │ │ │ SET(), or if a callable is passed in, │ │ │ │ the result of calling it. In most cases, passing a callable will be │ │ │ │ necessary to avoid executing queries at the time your models.py is │ │ │ │ imported:

      │ │ │ │
      from django.conf import settings
      │ │ │ │  from django.contrib.auth import get_user_model
      │ │ │ │ @@ -1954,15 +1955,15 @@
      │ │ │ │  
      │ │ │ │
      │ │ │ │
      │ │ │ │ │ │ │ │
    • │ │ │ │
    • │ │ │ │
      │ │ │ │ -DO_NOTHING[source]
      │ │ │ │ +DO_NOTHING[sorgente] │ │ │ │

      Take no action. If your database backend enforces referential │ │ │ │ integrity, this will cause an IntegrityError unless │ │ │ │ you manually add an SQL ON DELETE constraint to the database field.

      │ │ │ │
      │ │ │ │ │ │ │ │
    • │ │ │ │
    │ │ │ │ @@ -1995,15 +1996,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    If limit_choices_to is or returns a Q object, which is useful for complex queries, then it will only have an effect on the choices │ │ │ │ available in the admin when the field is not listed in │ │ │ │ raw_id_fields in the │ │ │ │ ModelAdmin for the model.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    If a callable is used for limit_choices_to, it will be invoked │ │ │ │ every time a new form is instantiated. It may also be invoked when a │ │ │ │ model is validated, for example by management commands or the admin. │ │ │ │ The admin constructs querysets to validate its form inputs in various │ │ │ │ edge cases multiple times, so there is a possibility your callable may │ │ │ │ be invoked several times.

    │ │ │ │
    │ │ │ │ @@ -2103,15 +2104,15 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    ManyToManyField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class ManyToManyField(to, **options)[source]
    │ │ │ │ +class ManyToManyField(to, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A many-to-many relationship. Requires a positional argument: the class to │ │ │ │ which the model is related, which works exactly the same as it does for │ │ │ │ ForeignKey, including recursive and │ │ │ │ lazy relationships.

    │ │ │ │

    Related objects can be added, removed, or created with the field’s │ │ │ │ @@ -2178,22 +2179,22 @@ │ │ │ │ relationships. However, if you want to manually specify the intermediary │ │ │ │ table, you can use the through option to specify │ │ │ │ the Django model that represents the intermediate table that you want to │ │ │ │ use.

    │ │ │ │

    The most common use for this option is when you want to associate │ │ │ │ extra data with a many-to-many relationship.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    If you don’t want multiple associations between the same instances, add │ │ │ │ a UniqueConstraint including the from and to │ │ │ │ fields. Django’s automatically generated many-to-many tables include │ │ │ │ such a constraint.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Recursive relationships using an intermediary model can’t determine the │ │ │ │ reverse accessors names, as they would be the same. You need to set a │ │ │ │ related_name to at least one of them. If you’d │ │ │ │ prefer Django not to create a backwards relation, set related_name │ │ │ │ to '+'.

    │ │ │ │
    │ │ │ │

    If you don’t specify an explicit through model, there is still an │ │ │ │ @@ -2321,21 +2322,21 @@ │ │ │ │ relationship at the database level.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    OneToOneField

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class OneToOneField(to, on_delete, parent_link=False, **options)[source]
    │ │ │ │ +class OneToOneField(to, on_delete, parent_link=False, **options)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A one-to-one relationship. Conceptually, this is similar to a │ │ │ │ ForeignKey with unique=True, but the │ │ │ │ -“reverse” side of the relation will directly return a single object.

    │ │ │ │ -

    This is most useful as the primary key of a model which “extends” │ │ │ │ +«reverse» side of the relation will directly return a single object.

    │ │ │ │ +

    This is most useful as the primary key of a model which «extends» │ │ │ │ another model in some way; Multi-table inheritance is │ │ │ │ implemented by adding an implicit one-to-one relation from the child │ │ │ │ model to the parent model, for example.

    │ │ │ │

    One positional argument is required: the class to which the model will be │ │ │ │ related. This works exactly the same as it does for ForeignKey, │ │ │ │ including all the options regarding recursive │ │ │ │ and lazy relationships.

    │ │ │ │ @@ -2394,15 +2395,15 @@ │ │ │ │ examples of OneToOneField.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Field API reference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Field[source]
    │ │ │ │ +class Field[sorgente] │ │ │ │

    Field is an abstract class that represents a database table column. │ │ │ │ Django uses fields to create the database table (db_type()), to map │ │ │ │ Python types to database (get_prep_value()) and vice-versa │ │ │ │ (from_db_value()).

    │ │ │ │

    A field is thus a fundamental piece in different Django APIs, notably, │ │ │ │ models and querysets.

    │ │ │ │

    In models, a field is instantiated as a class attribute and represents a │ │ │ │ @@ -2441,31 +2442,31 @@ │ │ │ │ behavior.

    │ │ │ │
    │ │ │ │ │ │ │ │

    To map a Field to a database-specific type, Django exposes several │ │ │ │ methods:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -get_internal_type()[source]
    │ │ │ │ +get_internal_type()[sorgente] │ │ │ │

    Returns a string naming this field for backend specific purposes. │ │ │ │ By default, it returns the class name.

    │ │ │ │

    See Emulating built-in field types for usage in custom fields.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -db_type(connection)[source]
    │ │ │ │ +db_type(connection)[sorgente] │ │ │ │

    Returns the database column data type for the Field, taking │ │ │ │ into account the connection.

    │ │ │ │

    See Custom database types for usage in custom fields.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -rel_db_type(connection)[source]
    │ │ │ │ +rel_db_type(connection)[sorgente] │ │ │ │

    Returns the database column data type for fields such as ForeignKey │ │ │ │ and OneToOneField that point to the Field, taking │ │ │ │ into account the connection.

    │ │ │ │

    See Custom database types for usage in custom fields.

    │ │ │ │
    │ │ │ │ │ │ │ │

    There are three main situations where Django needs to interact with the │ │ │ │ @@ -2475,24 +2476,24 @@ │ │ │ │

  • when it loads data from the database (database backend value -> Python │ │ │ │ value)

  • │ │ │ │
  • when it saves to the database (Python value -> database backend value)

  • │ │ │ │ │ │ │ │

    When querying, get_db_prep_value() and get_prep_value() are used:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -get_prep_value(value)[source]
    │ │ │ │ +get_prep_value(value)[sorgente] │ │ │ │

    value is the current value of the model’s attribute, and the method │ │ │ │ should return data in a format that has been prepared for use as a │ │ │ │ parameter in a query.

    │ │ │ │

    See Converting Python objects to query values for usage.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -get_db_prep_value(value, connection, prepared=False)[source]
    │ │ │ │ +get_db_prep_value(value, connection, prepared=False)[sorgente] │ │ │ │

    Converts value to a backend-specific value. By default it returns │ │ │ │ value if prepared=True and get_prep_value() if is │ │ │ │ False.

    │ │ │ │

    See Converting query values to database values for usage.

    │ │ │ │
    │ │ │ │ │ │ │ │

    When loading data, from_db_value() is used:

    │ │ │ │ @@ -2503,33 +2504,33 @@ │ │ │ │ the reverse of get_prep_value().

    │ │ │ │

    This method is not used for most built-in fields as the database │ │ │ │ backend already returns the correct Python type, or the backend itself │ │ │ │ does the conversion.

    │ │ │ │

    expression is the same as self.

    │ │ │ │

    See Converting values to Python objects for usage.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    For performance reasons, from_db_value is not implemented as a │ │ │ │ no-op on fields which do not require it (all Django fields). │ │ │ │ Consequently you may not call super in your definition.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │

    When saving, pre_save() and get_db_prep_save() are used:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -get_db_prep_save(value, connection)[source]
    │ │ │ │ +get_db_prep_save(value, connection)[sorgente] │ │ │ │

    Same as the get_db_prep_value(), but called when the field value │ │ │ │ must be saved to the database. By default returns │ │ │ │ get_db_prep_value().

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -pre_save(model_instance, add)[source]
    │ │ │ │ +pre_save(model_instance, add)[sorgente] │ │ │ │

    Method called prior to get_db_prep_save() to prepare the value │ │ │ │ before being saved (e.g. for DateField.auto_now).

    │ │ │ │

    model_instance is the instance this field belongs to and add │ │ │ │ is whether the instance is being saved to the database for the first │ │ │ │ time.

    │ │ │ │

    It should return the value of the appropriate attribute from │ │ │ │ model_instance for this field. The attribute name is in │ │ │ │ @@ -2537,54 +2538,54 @@ │ │ │ │

    See Preprocessing values before saving for usage.

    │ │ │ │
    │ │ │ │ │ │ │ │

    Fields often receive their values as a different type, either from │ │ │ │ serialization or from forms.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -to_python(value)[source]
    │ │ │ │ +to_python(value)[sorgente] │ │ │ │

    Converts the value into the correct Python object. It acts as the │ │ │ │ reverse of value_to_string(), and is also called in │ │ │ │ clean().

    │ │ │ │

    See Converting values to Python objects for usage.

    │ │ │ │
    │ │ │ │ │ │ │ │

    Besides saving to the database, the field also needs to know how to │ │ │ │ serialize its value:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -value_from_object(obj)[source]
    │ │ │ │ +value_from_object(obj)[sorgente] │ │ │ │

    Returns the field’s value for the given model instance.

    │ │ │ │

    This method is often used by value_to_string().

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -value_to_string(obj)[source]
    │ │ │ │ +value_to_string(obj)[sorgente] │ │ │ │

    Converts obj to a string. Used to serialize the value of the field.

    │ │ │ │

    See Converting field data for serialization for usage.

    │ │ │ │
    │ │ │ │ │ │ │ │

    When using model forms, the Field │ │ │ │ needs to know which form field it should be represented by:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -formfield(form_class=None, choices_form_class=None, **kwargs)[source]
    │ │ │ │ +formfield(form_class=None, choices_form_class=None, **kwargs)[sorgente] │ │ │ │

    Returns the default django.forms.Field of this field for │ │ │ │ ModelForm.

    │ │ │ │

    By default, if both form_class and choices_form_class are │ │ │ │ None, it uses CharField. If the field has │ │ │ │ choices and choices_form_class │ │ │ │ isn’t specified, it uses TypedChoiceField.

    │ │ │ │

    See Specifying the form field for a model field for usage.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -deconstruct()[source]
    │ │ │ │ +deconstruct()[sorgente] │ │ │ │

    Returns a 4-tuple with enough information to recreate the field:

    │ │ │ │
      │ │ │ │
    1. The name of the field on the model.

    2. │ │ │ │
    3. The import path of the field (e.g. "django.db.models.IntegerField"). │ │ │ │ This should be the most portable version, so less specific may be better.

    4. │ │ │ │
    5. A list of positional arguments.

    6. │ │ │ │
    7. A dict of keyword arguments.

    8. │ │ │ │ @@ -2796,37 +2797,37 @@ │ │ │ │
    9. Attributes for fields with relations
    10. │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
      │ │ │ │ -

      Previous topic

      │ │ │ │ +

      Argomento precedente

      │ │ │ │

      Models

      │ │ │ │ + title="capitolo precedente">Models

      │ │ │ │
      │ │ │ │
      │ │ │ │ -

      Next topic

      │ │ │ │ +

      Argomento successivo

      │ │ │ │

      Model index reference

      │ │ │ │ + title="capitolo successivo">Model index reference

      │ │ │ │
      │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

      Last update:

      │ │ │ │ -

      Jun 26, 2024

      │ │ │ │ +

      giu 26, 2024

      │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
      │ │ │ │
    │ │ │ │
    │ │ │ │

    Validating objects

    │ │ │ │ @@ -316,15 +317,15 @@ │ │ │ │ all the fields that are included on the form. See the ModelForm │ │ │ │ documentation for more information. You should only │ │ │ │ need to call a model’s full_clean() method if you plan to handle │ │ │ │ validation errors yourself, or if you have excluded fields from the │ │ │ │ ModelForm that require validation.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.full_clean(exclude=None, validate_unique=True, validate_constraints=True)[source]
    │ │ │ │ +Model.full_clean(exclude=None, validate_unique=True, validate_constraints=True)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    This method calls Model.clean_fields(), Model.clean(), │ │ │ │ Model.validate_unique() (if validate_unique is True), and │ │ │ │ Model.validate_constraints() (if validate_constraints is True) │ │ │ │ in that order and raises a ValidationError that │ │ │ │ has a message_dict attribute containing errors from all four stages.

    │ │ │ │ @@ -346,26 +347,26 @@ │ │ │ │ # Display them to a user, or handle them programmatically. │ │ │ │ pass │ │ │ │ │ │ │ │ │ │ │ │

    The first step full_clean() performs is to clean each individual field.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.clean_fields(exclude=None)[source]
    │ │ │ │ +Model.clean_fields(exclude=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    This method will validate all fields on your model. The optional exclude │ │ │ │ argument lets you provide a set of field names to exclude from validation. │ │ │ │ It will raise a ValidationError if any fields │ │ │ │ fail validation.

    │ │ │ │

    The second step full_clean() performs is to call Model.clean(). │ │ │ │ This method should be overridden to perform custom validation on your model.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.clean()[source]
    │ │ │ │ +Model.clean()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    This method should be used to provide custom model validation, and to modify │ │ │ │ attributes on your model if desired. For instance, you could use it to │ │ │ │ automatically provide a value for a field, or to do validation that requires │ │ │ │ access to more than a single field:

    │ │ │ │
    import datetime
    │ │ │ │ @@ -456,15 +457,15 @@
    │ │ │ │                      }
    │ │ │ │                  )
    │ │ │ │  
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.validate_unique(exclude=None)[source]
    │ │ │ │ +Model.validate_unique(exclude=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    This method is similar to clean_fields(), but validates │ │ │ │ uniqueness constraints defined via Field.unique, │ │ │ │ Field.unique_for_date, Field.unique_for_month, │ │ │ │ Field.unique_for_year, or Meta.unique_together on your model instead of individual │ │ │ │ field values. The optional exclude argument allows you to provide a set │ │ │ │ @@ -475,30 +476,30 @@ │ │ │ │ by Model.validate_constraints().

    │ │ │ │

    Note that if you provide an exclude argument to validate_unique(), any │ │ │ │ unique_together constraint involving one of │ │ │ │ the fields you provided will not be checked.

    │ │ │ │

    Finally, full_clean() will check any other constraints on your model.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.validate_constraints(exclude=None)[source]
    │ │ │ │ +Model.validate_constraints(exclude=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    This method validates all constraints defined in │ │ │ │ Meta.constraints. The │ │ │ │ optional exclude argument allows you to provide a set of field names to │ │ │ │ exclude from validation. It will raise a │ │ │ │ ValidationError if any constraints fail │ │ │ │ validation.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Saving objects

    │ │ │ │

    To save an object back to the database, call save():

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.save(*, force_insert=False, force_update=False, using=DEFAULT_DB_ALIAS, update_fields=None)[source]
    │ │ │ │ +Model.save(*, force_insert=False, force_update=False, using=DEFAULT_DB_ALIAS, update_fields=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ Model.asave(*, force_insert=False, force_update=False, using=DEFAULT_DB_ALIAS, update_fields=None)
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -506,15 +507,15 @@ │ │ │ │

    For details on using the force_insert and force_update arguments, see │ │ │ │ Forcing an INSERT or UPDATE. Details about the update_fields argument │ │ │ │ can be found in the Specifying which fields to save section.

    │ │ │ │

    If you want customized saving behavior, you can override this save() │ │ │ │ method. See Overriding predefined model methods for more details.

    │ │ │ │

    The model save process also has some subtleties; see the sections below.

    │ │ │ │
    │ │ │ │ -

    Deprecated since version 5.1: Support for positional arguments is deprecated.

    │ │ │ │ +

    Deprecato dalla versione 5.1: Support for positional arguments is deprecated.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Auto-incrementing primary keys

    │ │ │ │

    If a model has an AutoField — an auto-incrementing │ │ │ │ primary key — then that auto-incremented value will be calculated and saved as │ │ │ │ an attribute on your object the first time you call save():

    │ │ │ │
    >>> b2 = Blog(name="Cheddar Talk", tagline="Thoughts on cheese.")
    │ │ │ │ @@ -585,15 +586,15 @@
    │ │ │ │  override pre_save() to implement
    │ │ │ │  auto_now_add and
    │ │ │ │  auto_now.

    │ │ │ │
  • Prepare the data for the database. Each field’s │ │ │ │ get_db_prep_save() method is asked to provide │ │ │ │ its current value in a data type that can be written to the database.

    │ │ │ │

    Most fields don’t require data preparation. Simple data types, such as │ │ │ │ -integers and strings, are ‘ready to write’ as a Python object. However, more │ │ │ │ +integers and strings, are “ready to write” as a Python object. However, more │ │ │ │ complex data types often require some modification.

    │ │ │ │

    For example, DateField fields use a Python │ │ │ │ datetime object to store data. Databases don’t store datetime │ │ │ │ objects, so the field value must be converted into an ISO-compliant date │ │ │ │ string for insertion into the database.

    │ │ │ │
  • │ │ │ │
  • Insert the data into the database. The preprocessed, prepared data is │ │ │ │ @@ -727,15 +728,15 @@ │ │ │ │

  • │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Deleting objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.delete(using=DEFAULT_DB_ALIAS, keep_parents=False)[source]
    │ │ │ │ +Model.delete(using=DEFAULT_DB_ALIAS, keep_parents=False)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ Model.adelete(using=DEFAULT_DB_ALIAS, keep_parents=False)
    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -774,15 +775,15 @@ │ │ │ │
    │ │ │ │

    Other model instance methods

    │ │ │ │

    A few object methods have special purposes.

    │ │ │ │
    │ │ │ │

    __str__()

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.__str__()[source]
    │ │ │ │ +Model.__str__()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The __str__() method is called whenever you call str() on an object. │ │ │ │ Django uses str(obj) in a number of places. Most notably, to display an │ │ │ │ object in the Django admin site and as the value inserted into a template when │ │ │ │ it displays an object. Thus, you should always return a nice, human-readable │ │ │ │ representation of the model from the __str__() method.

    │ │ │ │ @@ -799,15 +800,15 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    __eq__()

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.__eq__()[source]
    │ │ │ │ +Model.__eq__()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The equality method is defined such that instances with the same primary │ │ │ │ key value and the same concrete class are considered equal, except that │ │ │ │ instances with a primary key value of None aren’t equal to anything except │ │ │ │ themselves. For proxy models, concrete class is defined as the model’s first │ │ │ │ non-proxy parent; for all other models it’s simply the model’s class.

    │ │ │ │ @@ -843,15 +844,15 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    __hash__()

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Model.__hash__()[source]
    │ │ │ │ +Model.__hash__()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The __hash__() method is based on the instance’s primary key value. It │ │ │ │ is effectively hash(obj.pk). If the instance doesn’t have a primary key │ │ │ │ value then a TypeError will be raised (otherwise the __hash__() │ │ │ │ method would return different values before and after the instance is │ │ │ │ saved, but changing the __hash__() value of an instance is │ │ │ │ @@ -879,49 +880,49 @@ │ │ │ │

    def get_absolute_url(self):
    │ │ │ │      from django.urls import reverse
    │ │ │ │  
    │ │ │ │      return reverse("people-detail", kwargs={"pk": self.pk})
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    One place Django uses get_absolute_url() is in the admin app. If an object │ │ │ │ -defines this method, the object-editing page will have a “View on site” link │ │ │ │ +defines this method, the object-editing page will have a «View on site» link │ │ │ │ that will jump you directly to the object’s public view, as given by │ │ │ │ get_absolute_url().

    │ │ │ │

    Similarly, a couple of other bits of Django, such as the syndication feed │ │ │ │ framework, use get_absolute_url() when it is │ │ │ │ defined. If it makes sense for your model’s instances to each have a unique │ │ │ │ URL, you should define get_absolute_url().

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    You should avoid building the URL from unvalidated user input, in order to │ │ │ │ reduce possibilities of link or redirect poisoning:

    │ │ │ │
    def get_absolute_url(self):
    │ │ │ │      return "/%s/" % self.name
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    If self.name is '/example.com' this returns '//example.com/' │ │ │ │ which, in turn, is a valid schema relative URL but not the expected │ │ │ │ '/%2Fexample.com/'.

    │ │ │ │
    │ │ │ │

    It’s good practice to use get_absolute_url() in templates, instead of │ │ │ │ -hard-coding your objects’ URLs. For example, this template code is bad:

    │ │ │ │ +hard-coding your objects” URLs. For example, this template code is bad:

    │ │ │ │
    <!-- BAD template code. Avoid! -->
    │ │ │ │  <a href="/people/{{ object.id }}/">{{ object.name }}</a>
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    This template code is much better:

    │ │ │ │
    <a href="{{ object.get_absolute_url }}">{{ object.name }}</a>
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    The logic here is that if you change the URL structure of your objects, even │ │ │ │ for something small like correcting a spelling error, you don’t want to have to │ │ │ │ track down every place that the URL might be created. Specify it once, in │ │ │ │ get_absolute_url() and have all your other code call that one place.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The string you return from get_absolute_url() must contain only │ │ │ │ ASCII characters (required by the URI specification, RFC 3986#section-2) │ │ │ │ and be URL-encoded, if necessary.

    │ │ │ │

    Code and templates calling get_absolute_url() should be able to use the │ │ │ │ result directly without any further processing. You may wish to use the │ │ │ │ django.utils.encoding.iri_to_uri() function to help with this if you │ │ │ │ are using strings containing characters outside the ASCII range.

    │ │ │ │ @@ -935,15 +936,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ Model.get_FOO_display()
    │ │ │ │
    │ │ │ │ │ │ │ │

    For every field that has choices set, the │ │ │ │ object will have a get_FOO_display() method, where FOO is the name of │ │ │ │ -the field. This method returns the “human-readable” value of the field.

    │ │ │ │ +the field. This method returns the «human-readable» value of the field.

    │ │ │ │

    For example:

    │ │ │ │
    from django.db import models
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  class Person(models.Model):
    │ │ │ │      SHIRT_SIZES = {
    │ │ │ │          "S": "Small",
    │ │ │ │ @@ -1069,37 +1070,37 @@
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  
    │ │ │ │  
    │ │ │ │    
    │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Model Meta options

    │ │ │ │ + title="capitolo precedente">Model Meta options

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    QuerySet API reference

    │ │ │ │ + title="capitolo successivo">QuerySet API reference

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Transform reference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Transform[source]
    │ │ │ │ +class Transform[sorgente] │ │ │ │

    A Transform is a generic class to implement field transformations. A │ │ │ │ prominent example is __year that transforms a DateField into a │ │ │ │ IntegerField.

    │ │ │ │

    The notation to use a Transform in a lookup expression is │ │ │ │ <expression>__<transformation> (e.g. date__year).

    │ │ │ │

    This class follows the Query Expression API, which │ │ │ │ implies that you can use <expression>__<transform1>__<transform2>. It’s │ │ │ │ @@ -235,15 +236,15 @@ │ │ │ │ lhs and rhs. Bilateral transformations will be applied to rhs in │ │ │ │ the same order as they appear in the lookup expression. By default it is set │ │ │ │ to False. For example usage, see How to write custom lookups.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -lhs[source]
    │ │ │ │ +lhs[sorgente] │ │ │ │

    The left-hand side - what is being transformed. It must follow the │ │ │ │ Query Expression API.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ lookup_name
    │ │ │ │ @@ -262,15 +263,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Lookup reference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Lookup[source]
    │ │ │ │ +class Lookup[sorgente] │ │ │ │

    A Lookup is a generic class to implement lookups. A lookup is a query │ │ │ │ expression with a left-hand side, lhs; a right-hand side, │ │ │ │ rhs; and a lookup_name that is used to produce a boolean │ │ │ │ comparison between lhs and rhs such as lhs in rhs or │ │ │ │ lhs > rhs.

    │ │ │ │

    The primary notation to use a lookup in an expression is │ │ │ │ <lhs>__<lookup_name>=<rhs>. Lookups can also be used directly in │ │ │ │ @@ -313,27 +314,27 @@ │ │ │ │ a parameter in a query. In order to do so, │ │ │ │ lhs.output_field.get_prep_value() is called if defined, or rhs │ │ │ │ is wrapped in Value() otherwise.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -process_lhs(compiler, connection, lhs=None)[source]
    │ │ │ │ +process_lhs(compiler, connection, lhs=None)[sorgente] │ │ │ │

    Returns a tuple (lhs_string, lhs_params), as returned by │ │ │ │ compiler.compile(lhs). This method can be overridden to tune how │ │ │ │ the lhs is processed.

    │ │ │ │

    compiler is an SQLCompiler object, to be used like │ │ │ │ compiler.compile(lhs) for compiling lhs. The connection │ │ │ │ can be used for compiling vendor specific SQL. If lhs is not │ │ │ │ None, use it as the processed lhs instead of self.lhs.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -process_rhs(compiler, connection)[source]
    │ │ │ │ +process_rhs(compiler, connection)[sorgente] │ │ │ │

    Behaves the same way as process_lhs(), for the right-hand side.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -358,37 +359,37 @@ │ │ │ │
  • Lookup reference
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    QuerySet API reference

    │ │ │ │ + title="capitolo precedente">QuerySet API reference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Query Expressions

    │ │ │ │ + title="capitolo successivo">Query Expressions

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    QuerySet API

    │ │ │ │

    Here’s the formal declaration of a QuerySet:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class QuerySet(model=None, query=None, using=None, hints=None)[source]
    │ │ │ │ +class QuerySet(model=None, query=None, using=None, hints=None)[sorgente] │ │ │ │

    Usually when you’ll interact with a QuerySet you’ll use it by │ │ │ │ chaining filters. To make this work, most │ │ │ │ QuerySet methods return new querysets. These methods are covered in │ │ │ │ detail later in this section.

    │ │ │ │

    The QuerySet class has the following public attributes you can use for │ │ │ │ introspection:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -ordered[source]
    │ │ │ │ +ordered[sorgente] │ │ │ │

    True if the QuerySet is ordered — i.e. has an │ │ │ │ order_by() clause or a default ordering on the model. │ │ │ │ False otherwise.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -db[source]
    │ │ │ │ +db[sorgente] │ │ │ │

    The database that will be used if this query is executed now.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The query parameter to QuerySet exists so that specialized │ │ │ │ query subclasses can reconstruct internal query state. The value of the │ │ │ │ parameter is an opaque representation of that query state and is not │ │ │ │ part of a public API.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Methods that return new QuerySets

    │ │ │ │

    Django provides a range of QuerySet refinement methods that modify either │ │ │ │ the types of results returned by the QuerySet or the way its SQL query is │ │ │ │ executed.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    These methods do not run database queries, therefore they are safe to │ │ │ │ run in asynchronous code, and do not have separate asynchronous │ │ │ │ versions.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    filter()

    │ │ │ │
    │ │ │ │ @@ -274,25 +275,25 @@ │ │ │ │ │ │ │ │

    Returns a new QuerySet containing objects that do not match the given │ │ │ │ lookup parameters.

    │ │ │ │

    The lookup parameters (**kwargs) should be in the format described in │ │ │ │ Field lookups below. Multiple parameters are joined via AND in the │ │ │ │ underlying SQL statement, and the whole thing is enclosed in a NOT().

    │ │ │ │

    This example excludes all entries whose pub_date is later than 2005-1-3 │ │ │ │ -AND whose headline is “Hello”:

    │ │ │ │ +AND whose headline is «Hello»:

    │ │ │ │
    Entry.objects.exclude(pub_date__gt=datetime.date(2005, 1, 3), headline="Hello")
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    In SQL terms, that evaluates to:

    │ │ │ │
    SELECT ...
    │ │ │ │  WHERE NOT (pub_date > '2005-1-3' AND headline = 'Hello')
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    This example excludes all entries whose pub_date is later than 2005-1-3 │ │ │ │ -OR whose headline is “Hello”:

    │ │ │ │ +OR whose headline is «Hello»:

    │ │ │ │
    Entry.objects.exclude(pub_date__gt=datetime.date(2005, 1, 3)).exclude(headline="Hello")
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    In SQL terms, that evaluates to:

    │ │ │ │
    SELECT ...
    │ │ │ │  WHERE NOT pub_date > '2005-1-3'
    │ │ │ │  AND NOT headline = 'Hello'
    │ │ │ │ @@ -437,15 +438,15 @@
    │ │ │ │  
    │ │ │ │

    asc() and desc() have arguments │ │ │ │ (nulls_first and nulls_last) that control how null values are sorted.

    │ │ │ │

    Be cautious when ordering by fields in related models if you are also using │ │ │ │ distinct(). See the note in distinct() for an explanation of how │ │ │ │ related model ordering can change the expected results.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    It is permissible to specify a multi-valued field to order the results by │ │ │ │ (for example, a ManyToManyField field, or the │ │ │ │ reverse relation of a ForeignKey field).

    │ │ │ │

    Consider this case:

    │ │ │ │
    class Event(Model):
    │ │ │ │      parent = models.ForeignKey(
    │ │ │ │          "self",
    │ │ │ │ @@ -485,15 +486,15 @@
    │ │ │ │  QuerySet has been ordered in any way.

    │ │ │ │

    Each order_by() call will clear any previous ordering. For example, this │ │ │ │ query will be ordered by pub_date and not headline:

    │ │ │ │
    Entry.objects.order_by("headline").order_by("pub_date")
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Ordering is not a free operation. Each field you add to the ordering │ │ │ │ incurs a cost to your database. Each foreign key you add will │ │ │ │ implicitly include all of its default orderings as well.

    │ │ │ │

    If a query doesn’t have an ordering specified, results are returned from │ │ │ │ the database in an unspecified order. A particular ordering is guaranteed │ │ │ │ only when ordering by a set of fields that uniquely identify each object in │ │ │ │ the results. For example, if a name field isn’t unique, ordering by it │ │ │ │ @@ -506,15 +507,15 @@ │ │ │ │

    │ │ │ │ reverse()
    │ │ │ │
    │ │ │ │ │ │ │ │

    Use the reverse() method to reverse the order in which a queryset’s │ │ │ │ elements are returned. Calling reverse() a second time restores the │ │ │ │ ordering back to the normal direction.

    │ │ │ │ -

    To retrieve the “last” five items in a queryset, you could do this:

    │ │ │ │ +

    To retrieve the «last» five items in a queryset, you could do this:

    │ │ │ │
    my_queryset.reverse()[:5]
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    Note that this is not quite the same as slicing from the end of a sequence in │ │ │ │ Python. The above example will return the last item first, then the │ │ │ │ penultimate item and so on. If we had a Python sequence and looked at │ │ │ │ seq[-5:], we would see the fifth-last item first. Django doesn’t support │ │ │ │ @@ -538,15 +539,15 @@ │ │ │ │ eliminates duplicate rows from the query results.

    │ │ │ │

    By default, a QuerySet will not eliminate duplicate rows. In practice, this │ │ │ │ is rarely a problem, because simple queries such as Blog.objects.all() │ │ │ │ don’t introduce the possibility of duplicate result rows. However, if your │ │ │ │ query spans multiple tables, it’s possible to get duplicate results when a │ │ │ │ QuerySet is evaluated. That’s when you’d use distinct().

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Any fields used in an order_by() call are included in the SQL │ │ │ │ SELECT columns. This can sometimes lead to unexpected results when used │ │ │ │ in conjunction with distinct(). If you order by fields from a related │ │ │ │ model, those fields will be added to the selected columns and they may make │ │ │ │ otherwise duplicate rows appear to be distinct. Since the extra columns │ │ │ │ don’t appear in the returned results (they are only there to support │ │ │ │ ordering), it sometimes looks like non-distinct results are being returned.

    │ │ │ │ @@ -561,15 +562,15 @@ │ │ │ │

    On PostgreSQL only, you can pass positional arguments (*fields) in order to │ │ │ │ specify the names of fields to which the DISTINCT should apply. This │ │ │ │ translates to a SELECT DISTINCT ON SQL query. Here’s the difference. For a │ │ │ │ normal distinct() call, the database compares each field in each row when │ │ │ │ determining which rows are distinct. For a distinct() call with specified │ │ │ │ field names, the database will only compare the specified field names.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    When you specify field names, you must provide an order_by() in the │ │ │ │ QuerySet, and the fields in order_by() must start with the fields in │ │ │ │ distinct(), in the same order.

    │ │ │ │

    For example, SELECT DISTINCT ON (a) gives you the first row for each │ │ │ │ value in column a. If you don’t specify an order, you’ll get some │ │ │ │ arbitrary row.

    │ │ │ │
    │ │ │ │ @@ -590,15 +591,15 @@ │ │ │ │ [...] │ │ │ │ │ │ │ │ >>> Entry.objects.order_by("author", "pub_date").distinct("author") │ │ │ │ [...] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Keep in mind that order_by() uses any default related model ordering │ │ │ │ that has been defined. You might have to explicitly order by the relation │ │ │ │ _id or referenced field to make sure the DISTINCT ON expressions │ │ │ │ match those at the beginning of the ORDER BY clause. For example, if │ │ │ │ the Blog model defined an ordering by │ │ │ │ name:

    │ │ │ │
    Entry.objects.order_by("blog").distinct("blog")
    │ │ │ │ @@ -740,15 +741,15 @@
    │ │ │ │  OneToOneField, ForeignKey and ManyToManyField attributes:

    │ │ │ │
    >>> Blog.objects.values("name", "entry__headline")
    │ │ │ │  <QuerySet [{'name': 'My blog', 'entry__headline': 'An entry'},
    │ │ │ │       {'name': 'My blog', 'entry__headline': 'Another entry'}, ...]>
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Because ManyToManyField attributes and reverse │ │ │ │ relations can have multiple related rows, including these can have a │ │ │ │ multiplier effect on the size of your result set. This will be especially │ │ │ │ pronounced if you include multiple such fields in your values() query, │ │ │ │ in which case all possible combinations will be returned.

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -805,15 +806,15 @@ │ │ │ │ 'First entry' │ │ │ │
    │ │ │ │
    │ │ │ │

    values() and values_list() are both intended as optimizations for a │ │ │ │ specific use case: retrieving a subset of data without the overhead of creating │ │ │ │ a model instance. This metaphor falls apart when dealing with many-to-many and │ │ │ │ other multivalued relations (such as the one-to-many relation of a reverse │ │ │ │ -foreign key) because the “one row, one object” assumption doesn’t hold.

    │ │ │ │ +foreign key) because the «one row, one object» assumption doesn’t hold.

    │ │ │ │

    For example, notice the behavior when querying across a │ │ │ │ ManyToManyField:

    │ │ │ │
    >>> Author.objects.values_list("name", "entry__headline")
    │ │ │ │  <QuerySet [('Noam Chomsky', 'Impressions of Gaza'),
    │ │ │ │   ('George Orwell', 'Why Socialists Do Not Believe in Fun'),
    │ │ │ │   ('George Orwell', 'In Defence of English Cooking'),
    │ │ │ │   ('Don Quixote', None)]>
    │ │ │ │ @@ -844,15 +845,15 @@
    │ │ │ │  
    │ │ │ │ │ │ │ │

    Returns a QuerySet that evaluates to a list of datetime.date │ │ │ │ objects representing all available dates of a particular kind within the │ │ │ │ contents of the QuerySet.

    │ │ │ │

    field should be the name of a DateField of your model. │ │ │ │ kind should be either "year", "month", "week", or "day". │ │ │ │ -Each datetime.date object in the result list is “truncated” to the │ │ │ │ +Each datetime.date object in the result list is «truncated» to the │ │ │ │ given type.

    │ │ │ │
      │ │ │ │
    • "year" returns a list of all distinct year values for the field.

    • │ │ │ │
    • "month" returns a list of all distinct year/month values for the │ │ │ │ field.

    • │ │ │ │
    • "week" returns a list of all distinct year/week values for the field. All │ │ │ │ dates will be a Monday.

    • │ │ │ │ @@ -886,24 +887,24 @@ │ │ │ │ │ │ │ │

      Returns a QuerySet that evaluates to a list of datetime.datetime │ │ │ │ objects representing all available dates of a particular kind within the │ │ │ │ contents of the QuerySet.

      │ │ │ │

      field_name should be the name of a DateTimeField of your model.

      │ │ │ │

      kind should be either "year", "month", "week", "day", │ │ │ │ "hour", "minute", or "second". Each datetime.datetime │ │ │ │ -object in the result list is “truncated” to the given type.

      │ │ │ │ +object in the result list is «truncated» to the given type.

      │ │ │ │

      order, which defaults to 'ASC', should be either 'ASC' or │ │ │ │ 'DESC'. This specifies how to order the results.

      │ │ │ │

      tzinfo defines the time zone to which datetimes are converted prior to │ │ │ │ truncation. Indeed, a given datetime has different representations depending │ │ │ │ on the time zone in use. This parameter must be a datetime.tzinfo │ │ │ │ object. If it’s None, Django uses the current time zone. It has no effect when USE_TZ is │ │ │ │ False.

      │ │ │ │
      │ │ │ │ -

      Note

      │ │ │ │ +

      Nota

      │ │ │ │

      This function performs time zone conversions directly in the database. │ │ │ │ As a consequence, your database must be able to interpret the value of │ │ │ │ tzinfo.tzname(None). This translates into the following requirements:

      │ │ │ │
        │ │ │ │
      • SQLite: no requirements. Conversions are performed in Python.

      • │ │ │ │
      • PostgreSQL: no requirements (see Time Zones).

      • │ │ │ │
      • Oracle: no requirements (see Choosing a Time Zone File).

      • │ │ │ │ @@ -1010,15 +1011,15 @@ │ │ │ │
      │ │ │ │
      │ │ │ │ -

      Warning

      │ │ │ │ +

      Avvertimento

      │ │ │ │

      If you are performing queries on MySQL, note that MySQL’s silent type coercion │ │ │ │ may cause unexpected results when mixing types. If you query on a string │ │ │ │ type column, but with an integer value, MySQL will coerce the types of all values │ │ │ │ in the table to an integer before performing the comparison. For example, if your │ │ │ │ table contains the values 'abc', 'def' and you query for WHERE mycolumn=0, │ │ │ │ both rows will match. To prevent this, perform the correct typecasting │ │ │ │ before using the value in a query.

      │ │ │ │ @@ -1624,15 +1625,15 @@ │ │ │ │
      Entry.objects.defer("headline", "body")
      │ │ │ │  
      │ │ │ │
      │ │ │ │

      A queryset that has deferred fields will still return model instances. Each │ │ │ │ deferred field will be retrieved from the database if you access that field │ │ │ │ (one at a time, not all the deferred fields at once).

      │ │ │ │
      │ │ │ │ -

      Note

      │ │ │ │ +

      Nota

      │ │ │ │

      Deferred fields will not lazy-load like this from asynchronous code. │ │ │ │ Instead, you will get a SynchronousOnlyOperation exception. If you are │ │ │ │ writing asynchronous code, you should not try to access any fields that you │ │ │ │ defer().

      │ │ │ │
      │ │ │ │

      You can make multiple calls to defer(). Each call adds new fields to the │ │ │ │ deferred set:

      │ │ │ │ @@ -1661,15 +1662,15 @@ │ │ │ │ loading of the field that connects from the primary model to the related │ │ │ │ one, doing so will result in an error.

      │ │ │ │

      Similarly, calling defer() (or its counterpart only()) including an │ │ │ │ argument from an aggregation (e.g. using the result of annotate()) │ │ │ │ doesn’t make sense: doing so will raise an exception. The aggregated values │ │ │ │ will always be fetched into the resulting queryset.

      │ │ │ │
      │ │ │ │ -

      Note

      │ │ │ │ +

      Nota

      │ │ │ │

      The defer() method (and its cousin, only(), below) are only for │ │ │ │ advanced use-cases. They provide an optimization for when you have analyzed │ │ │ │ your queries closely and understand exactly what information you need and │ │ │ │ have measured that the difference between returning the fields you need and │ │ │ │ the full set of fields for the model will be significant.

      │ │ │ │

      Even if you think you are in the advanced use-case situation, only use │ │ │ │ defer() when you cannot, at queryset load time, determine if you will │ │ │ │ @@ -1706,15 +1707,15 @@ │ │ │ │

    │ │ │ │
    │ │ │ │

    If many fields need to be duplicated in the unmanaged model, it may be best │ │ │ │ to create an abstract model with the shared fields and then have the │ │ │ │ unmanaged and managed models inherit from the abstract model.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    When calling save() for instances with │ │ │ │ deferred fields, only the loaded fields will be saved. See │ │ │ │ save() for more details.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    only()

    │ │ │ │ @@ -1760,21 +1761,21 @@ │ │ │ │ an error as well. On the other hand, invoking only() without any arguments, │ │ │ │ will return every field (including annotations) fetched by the queryset.

    │ │ │ │

    As with defer(), you cannot access the non-loaded fields from asynchronous │ │ │ │ code and expect them to load. Instead, you will get a │ │ │ │ SynchronousOnlyOperation exception. Ensure that all fields you might access │ │ │ │ are in your only() call.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    When calling save() for instances with │ │ │ │ deferred fields, only the loaded fields will be saved. See │ │ │ │ save() for more details.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    When using defer() after only() the fields in defer() will │ │ │ │ override only() for fields that are listed in both.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    using()

    │ │ │ │
    │ │ │ │ @@ -1880,15 +1881,15 @@ │ │ │ │ corruption and could easily be caused by calling code that expects to be run in │ │ │ │ a transaction outside of one.

    │ │ │ │

    Using select_for_update() on backends which do not support │ │ │ │ SELECT ... FOR UPDATE (such as SQLite) will have no effect. │ │ │ │ SELECT ... FOR UPDATE will not be added to the query, and an error isn’t │ │ │ │ raised if select_for_update() is used in autocommit mode.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Although select_for_update() normally fails in autocommit mode, since │ │ │ │ TestCase automatically wraps each test in a │ │ │ │ transaction, calling select_for_update() in a TestCase even outside │ │ │ │ an atomic() block will (perhaps unexpectedly) │ │ │ │ pass without raising a TransactionManagementError. To properly test │ │ │ │ select_for_update() you should use │ │ │ │ TransactionTestCase.

    │ │ │ │ @@ -1908,15 +1909,15 @@ │ │ │ │ │ │ │ │

    Takes a raw SQL query, executes it, and returns a │ │ │ │ django.db.models.query.RawQuerySet instance. This RawQuerySet instance │ │ │ │ can be iterated over just like a normal QuerySet to provide object │ │ │ │ instances.

    │ │ │ │

    See the Performing raw SQL queries for more information.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    raw() always triggers a new query and doesn’t account for previous │ │ │ │ filtering. As such, it should generally be called from the Manager or │ │ │ │ from a fresh QuerySet instance.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -1965,15 +1966,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    SQL equivalent:

    │ │ │ │
    SELECT ... WHERE x=1 XOR y=2
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    XOR is natively supported on MariaDB and MySQL. On other databases, │ │ │ │ x ^ y ^ ... ^ z is converted to an equivalent:

    │ │ │ │
    (x OR y OR ... OR z) AND
    │ │ │ │  1=MOD(
    │ │ │ │      (CASE WHEN x THEN 1 ELSE 0 END) +
    │ │ │ │      (CASE WHEN y THEN 1 ELSE 0 END) +
    │ │ │ │      ...
    │ │ │ │ @@ -2121,15 +2122,15 @@
    │ │ │ │  )
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    Any keyword arguments passed to get_or_create()except an optional one │ │ │ │ called defaults — will be used in a get() call. If an object is │ │ │ │ found, get_or_create() returns a tuple of that object and False.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    This method is atomic assuming that the database enforces uniqueness of the │ │ │ │ keyword arguments (see unique or │ │ │ │ unique_together). If the fields used in the │ │ │ │ keyword arguments do not have a uniqueness constraint, concurrent calls to │ │ │ │ this method may result in multiple rows with the same parameters being │ │ │ │ inserted.

    │ │ │ │
    │ │ │ │ @@ -2173,15 +2174,15 @@ │ │ │ │ IntegrityError will be raised.

    │ │ │ │

    Finally, a word on using get_or_create() in Django views. Please make sure │ │ │ │ to use it only in POST requests unless you have a good reason not to. │ │ │ │ GET requests shouldn’t have any effect on data. Instead, use POST │ │ │ │ whenever a request to a page has a side effect on your data. For more, see │ │ │ │ Safe methods in the HTTP spec.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    You can use get_or_create() through ManyToManyField │ │ │ │ attributes and reverse relations. In that case you will restrict the queries │ │ │ │ inside the context of that relation. That could lead you to some integrity │ │ │ │ problems if you don’t use it consistently.

    │ │ │ │

    Being the following models:

    │ │ │ │
    class Chapter(models.Model):
    │ │ │ │      title = models.CharField(max_length=255, unique=True)
    │ │ │ │ @@ -2201,16 +2202,16 @@
    │ │ │ │  (<Chapter: Telemachus>, False)
    │ │ │ │  >>> Chapter.objects.create(title="Chapter 1")
    │ │ │ │  <Chapter: Chapter 1>
    │ │ │ │  >>> book.chapters.get_or_create(title="Chapter 1")
    │ │ │ │  # Raises IntegrityError
    │ │ │ │  
    │ │ │ │
    │ │ │ │ -

    This is happening because it’s trying to get or create “Chapter 1” through the │ │ │ │ -book “Ulysses”, but it can’t do any of them: the relation can’t fetch that │ │ │ │ +

    This is happening because it’s trying to get or create «Chapter 1» through the │ │ │ │ +book «Ulysses», but it can’t do any of them: the relation can’t fetch that │ │ │ │ chapter because it isn’t related to that book, but it can’t create it either │ │ │ │ because title field should be unique.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    update_or_create()

    │ │ │ │
    │ │ │ │ @@ -2340,15 +2341,15 @@ │ │ │ │

    Enabling the ignore_conflicts parameter disables setting the primary key on │ │ │ │ each model instance (if the database normally supports it).

    │ │ │ │
    │ │ │ │ Changed in Django 5.0:

    In older versions, enabling the update_conflicts parameter prevented │ │ │ │ setting the primary key on each model instance.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    On MySQL and MariaDB, setting the ignore_conflicts parameter to │ │ │ │ True turns certain types of errors, other than duplicate key, into │ │ │ │ warnings. Even with Strict Mode. For example: invalid values or │ │ │ │ non-nullable violations. See the MySQL documentation and │ │ │ │ MariaDB documentation for more details.

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -2865,15 +2866,15 @@ │ │ │ │

    Chaining order_by() with update() is supported only on MariaDB and │ │ │ │ MySQL, and is ignored for different databases. This is useful for updating a │ │ │ │ unique field in the order that is specified without conflicts. For example:

    │ │ │ │
    Entry.objects.order_by("-number").update(number=F("number") + 1)
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    order_by() clause will be ignored if it contains annotations, inherited │ │ │ │ fields, or lookups spanning relations.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    delete()

    │ │ │ │ @@ -3017,15 +3018,15 @@ │ │ │ │

    SQL equivalents:

    │ │ │ │
    SELECT ... WHERE id = 14;
    │ │ │ │  SELECT ... WHERE id IS NULL;
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │

    MySQL comparisons

    │ │ │ │ -

    In MySQL, a database table’s “collation” setting determines whether │ │ │ │ +

    In MySQL, a database table’s «collation» setting determines whether │ │ │ │ exact comparisons are case-sensitive. This is a database setting, not │ │ │ │ a Django setting. It’s possible to configure your MySQL tables to use │ │ │ │ case-sensitive comparisons, but some trade-offs are involved. For more │ │ │ │ information about this, see the collation section │ │ │ │ in the databases documentation.

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -3248,17 +3249,17 @@ │ │ │ │

    SQL equivalent:

    │ │ │ │
    SELECT ... WHERE pub_date BETWEEN '2005-01-01' and '2005-03-31';
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    You can use range anywhere you can use BETWEEN in SQL — for dates, │ │ │ │ numbers and even characters.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Filtering a DateTimeField with dates won’t include items on the last │ │ │ │ -day, because the bounds are interpreted as “0am on the given date”. If │ │ │ │ +day, because the bounds are interpreted as «0am on the given date». If │ │ │ │ pub_date was a DateTimeField, the above expression would be turned │ │ │ │ into this SQL:

    │ │ │ │
    SELECT ... WHERE pub_date BETWEEN '2005-01-01 00:00:00' and '2005-03-31 00:00:00';
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    Generally speaking, you can’t mix dates and datetimes.

    │ │ │ │
    │ │ │ │ @@ -3365,15 +3366,15 @@ │ │ │ │ implementation of the relevant query varies among different database engines.)

    │ │ │ │

    When USE_TZ is True, datetime fields are converted to the │ │ │ │ current time zone before filtering. This requires time zone definitions │ │ │ │ in the database.

    │ │ │ │ │ │ │ │
    │ │ │ │

    week_day

    │ │ │ │ -

    For date and datetime fields, a ‘day of the week’ match. Allows chaining │ │ │ │ +

    For date and datetime fields, a “day of the week” match. Allows chaining │ │ │ │ additional field lookups.

    │ │ │ │

    Takes an integer value representing the day of week from 1 (Sunday) to 7 │ │ │ │ (Saturday).

    │ │ │ │

    Example:

    │ │ │ │
    Entry.objects.filter(pub_date__week_day=2)
    │ │ │ │  Entry.objects.filter(pub_date__week_day__gte=2)
    │ │ │ │  
    │ │ │ │ @@ -3405,15 +3406,15 @@ │ │ │ │ are indexed with day 1 being Monday and day 7 being Sunday.

    │ │ │ │

    When USE_TZ is True, datetime fields are converted to the │ │ │ │ current time zone before filtering. This requires time zone definitions │ │ │ │ in the database.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    quarter

    │ │ │ │ -

    For date and datetime fields, a ‘quarter of the year’ match. Allows chaining │ │ │ │ +

    For date and datetime fields, a “quarter of the year” match. Allows chaining │ │ │ │ additional field lookups. Takes an integer value between 1 and 4 representing │ │ │ │ the quarter of the year.

    │ │ │ │

    Example to retrieve entries in the second quarter (April 1 to June 30):

    │ │ │ │
    Entry.objects.filter(pub_date__quarter=2)
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    (No equivalent SQL code fragment is included for this lookup because │ │ │ │ @@ -3559,15 +3560,15 @@ │ │ │ │

    │ │ │ │

    Aggregation functions

    │ │ │ │

    Django provides the following aggregation functions in the │ │ │ │ django.db.models module. For details on how to use these │ │ │ │ aggregate functions, see the topic guide on aggregation. See the Aggregate │ │ │ │ documentation to learn how to create your aggregates.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    SQLite can’t handle aggregation on date/time fields out of the box. │ │ │ │ This is because there are no native date/time fields in SQLite and Django │ │ │ │ currently emulates these features using a text field. Attempts to use │ │ │ │ aggregation on date/time fields in SQLite will raise NotSupportedError.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Empty querysets or groups

    │ │ │ │ @@ -3586,15 +3587,15 @@ │ │ │ │ query expressions.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    output_field

    │ │ │ │

    An optional argument that represents the model field │ │ │ │ of the return value

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    When combining multiple field types, Django can only determine the │ │ │ │ output_field if all fields are of the same type. Otherwise, you │ │ │ │ must provide the output_field yourself.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    filter

    │ │ │ │ @@ -3613,15 +3614,15 @@ │ │ │ │

    Keyword arguments that can provide extra context for the SQL generated │ │ │ │ by the aggregate.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Avg

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Avg(expression, output_field=None, distinct=False, filter=None, default=None, **extra)[source]
    │ │ │ │ +class Avg(expression, output_field=None, distinct=False, filter=None, default=None, **extra)[sorgente] │ │ │ │

    Returns the mean value of the given expression, which must be numeric │ │ │ │ unless you specify a different output_field.

    │ │ │ │
      │ │ │ │
    • Default alias: <field>__avg

    • │ │ │ │
    • Return type: float if input is int, otherwise same as input │ │ │ │ field, or output_field if supplied. If the queryset or grouping is │ │ │ │ empty, default is returned.

    • │ │ │ │ @@ -3637,15 +3638,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Count

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Count(expression, distinct=False, filter=None, **extra)[source]
    │ │ │ │ +class Count(expression, distinct=False, filter=None, **extra)[sorgente] │ │ │ │

    Returns the number of objects that are related through the provided │ │ │ │ expression. Count('*') is equivalent to the SQL COUNT(*) │ │ │ │ expression.

    │ │ │ │
      │ │ │ │
    • Default alias: <field>__count

    • │ │ │ │
    • Return type: int

    • │ │ │ │
    │ │ │ │ @@ -3654,53 +3655,53 @@ │ │ │ │ distinct │ │ │ │

    Optional. If distinct=True, the count will only include unique │ │ │ │ instances. This is the SQL equivalent of COUNT(DISTINCT <field>). │ │ │ │ The default value is False.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The default argument is not supported.

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Max

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Max(expression, output_field=None, filter=None, default=None, **extra)[source]
    │ │ │ │ +class Max(expression, output_field=None, filter=None, default=None, **extra)[sorgente] │ │ │ │

    Returns the maximum value of the given expression.

    │ │ │ │
      │ │ │ │
    • Default alias: <field>__max

    • │ │ │ │
    • Return type: same as input field, or output_field if supplied. If the │ │ │ │ queryset or grouping is empty, default is returned.

    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Min

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Min(expression, output_field=None, filter=None, default=None, **extra)[source]
    │ │ │ │ +class Min(expression, output_field=None, filter=None, default=None, **extra)[sorgente] │ │ │ │

    Returns the minimum value of the given expression.

    │ │ │ │
      │ │ │ │
    • Default alias: <field>__min

    • │ │ │ │
    • Return type: same as input field, or output_field if supplied. If the │ │ │ │ queryset or grouping is empty, default is returned.

    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    StdDev

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class StdDev(expression, output_field=None, sample=False, filter=None, default=None, **extra)[source]
    │ │ │ │ +class StdDev(expression, output_field=None, sample=False, filter=None, default=None, **extra)[sorgente] │ │ │ │

    Returns the standard deviation of the data in the provided expression.

    │ │ │ │
      │ │ │ │
    • Default alias: <field>__stddev

    • │ │ │ │
    • Return type: float if input is int, otherwise same as input │ │ │ │ field, or output_field if supplied. If the queryset or grouping is │ │ │ │ empty, default is returned.

    • │ │ │ │
    │ │ │ │ @@ -3715,15 +3716,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Sum

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Sum(expression, output_field=None, distinct=False, filter=None, default=None, **extra)[source]
    │ │ │ │ +class Sum(expression, output_field=None, distinct=False, filter=None, default=None, **extra)[sorgente] │ │ │ │

    Computes the sum of all values of the given expression.

    │ │ │ │
      │ │ │ │
    • Default alias: <field>__sum

    • │ │ │ │
    • Return type: same as input field, or output_field if supplied. If the │ │ │ │ queryset or grouping is empty, default is returned.

    • │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -3737,15 +3738,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Variance

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Variance(expression, output_field=None, sample=False, filter=None, default=None, **extra)[source]
    │ │ │ │ +class Variance(expression, output_field=None, sample=False, filter=None, default=None, **extra)[sorgente] │ │ │ │

    Returns the variance of the data in the provided expression.

    │ │ │ │
      │ │ │ │
    • Default alias: <field>__variance

    • │ │ │ │
    • Return type: float if input is int, otherwise same as input │ │ │ │ field, or output_field if supplied. If the queryset or grouping is │ │ │ │ empty, default is returned.

    • │ │ │ │
    │ │ │ │ @@ -3766,30 +3767,30 @@ │ │ │ │

    Query-related tools

    │ │ │ │

    This section provides reference material for query-related tools not documented │ │ │ │ elsewhere.

    │ │ │ │
    │ │ │ │

    Q() objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Q[source]
    │ │ │ │ +class Q[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    A Q() object represents an SQL condition that can be used in │ │ │ │ database-related operations. It’s similar to how an │ │ │ │ F() object represents the value of a model field │ │ │ │ or annotation. They make it possible to define and reuse conditions. These can │ │ │ │ be negated using the ~ (NOT) operator, and combined using operators │ │ │ │ such as | (OR), & (AND), and ^ (XOR). See │ │ │ │ Complex lookups with Q objects.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Prefetch() objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Prefetch(lookup, queryset=None, to_attr=None)[source]
    │ │ │ │ +class Prefetch(lookup, queryset=None, to_attr=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The Prefetch() object can be used to control the operation of │ │ │ │ prefetch_related().

    │ │ │ │

    The lookup argument describes the relations to follow and works the same │ │ │ │ as the string based lookups passed to │ │ │ │ prefetch_related(). For example:

    │ │ │ │ @@ -3820,26 +3821,26 @@ │ │ │ │ >>> Question.objects.prefetch_related(prefetch).get().voted_choices │ │ │ │ [<Choice: The sky>] │ │ │ │ >>> Question.objects.prefetch_related(prefetch).get().choice_set.all() │ │ │ │ <QuerySet [<Choice: Not much>, <Choice: The sky>, <Choice: Just hacking again>]> │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    When using to_attr the prefetched result is stored in a list. This can │ │ │ │ provide a significant speed improvement over traditional │ │ │ │ prefetch_related calls which store the cached result within a │ │ │ │ QuerySet instance.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    FilteredRelation() objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FilteredRelation(relation_name, *, condition=Q())[source]
    │ │ │ │ +class FilteredRelation(relation_name, *, condition=Q())[sorgente] │ │ │ │
    │ │ │ │
    │ │ │ │ relation_name
    │ │ │ │

    The name of the field on which you’d like to filter the relation.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -4055,37 +4056,37 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Model instance reference

    │ │ │ │ + title="capitolo precedente">Model instance reference

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Lookup API reference

    │ │ │ │ + title="capitolo successivo">Lookup API reference

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Methods

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Paginator.get_page(number)[source]
    │ │ │ │ +Paginator.get_page(number)[sorgente] │ │ │ │

    Returns a Page object with the given 1-based index, while also │ │ │ │ handling out of range and invalid page numbers.

    │ │ │ │

    If the page isn’t a number, it returns the first page. If the page number │ │ │ │ is negative or greater than the number of pages, it returns the last page.

    │ │ │ │

    Raises an EmptyPage exception only if you specify │ │ │ │ Paginator(..., allow_empty_first_page=False) and the object_list is │ │ │ │ empty.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Paginator.page(number)[source]
    │ │ │ │ +Paginator.page(number)[sorgente] │ │ │ │

    Returns a Page object with the given 1-based index. Raises │ │ │ │ PageNotAnInteger if the number cannot be converted to an integer │ │ │ │ by calling int(). Raises EmptyPage if the given page number │ │ │ │ doesn’t exist.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Paginator.get_elided_page_range(number, *, on_each_side=3, on_ends=2)[source]
    │ │ │ │ +Paginator.get_elided_page_range(number, *, on_each_side=3, on_ends=2)[sorgente] │ │ │ │

    Returns a 1-based list of page numbers similar to │ │ │ │ Paginator.page_range, but may add an ellipsis to either or both │ │ │ │ sides of the current page number when Paginator.num_pages is large.

    │ │ │ │

    The number of pages to include on each side of the current page number is │ │ │ │ determined by the on_each_side argument which defaults to 3.

    │ │ │ │

    The number of pages to include at the beginning and end of page range is │ │ │ │ determined by the on_ends argument which defaults to 2.

    │ │ │ │ @@ -220,98 +221,98 @@ │ │ │ │

    A translatable string used as a substitute for elided page numbers in the │ │ │ │ page range returned by get_elided_page_range(). Default is │ │ │ │ '…'.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Paginator.count[source]
    │ │ │ │ +Paginator.count[sorgente] │ │ │ │

    The total number of objects, across all pages.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    When determining the number of objects contained in object_list, │ │ │ │ Paginator will first try calling object_list.count(). If │ │ │ │ object_list has no count() method, then Paginator will │ │ │ │ fall back to using len(object_list). This allows objects, such as │ │ │ │ QuerySet, to use a more efficient count() method when │ │ │ │ available.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Paginator.num_pages[source]
    │ │ │ │ +Paginator.num_pages[sorgente] │ │ │ │

    The total number of pages.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Paginator.page_range[source]
    │ │ │ │ +Paginator.page_range[sorgente] │ │ │ │

    A 1-based range iterator of page numbers, e.g. yielding [1, 2, 3, 4].

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Page class

    │ │ │ │

    You usually won’t construct Page objects by hand – you’ll get them by │ │ │ │ iterating Paginator, or by using Paginator.page().

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class Page(object_list, number, paginator)[source]
    │ │ │ │ +class Page(object_list, number, paginator)[sorgente] │ │ │ │

    A page acts like a sequence of Page.object_list when using │ │ │ │ len() or iterating it directly.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Methods

    │ │ │ │
    │ │ │ │
    │ │ │ │ -Page.has_next()[source]
    │ │ │ │ +Page.has_next()[sorgente] │ │ │ │

    Returns True if there’s a next page.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Page.has_previous()[source]
    │ │ │ │ +Page.has_previous()[sorgente] │ │ │ │

    Returns True if there’s a previous page.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Page.has_other_pages()[source]
    │ │ │ │ +Page.has_other_pages()[sorgente] │ │ │ │

    Returns True if there’s a next or previous page.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Page.next_page_number()[source]
    │ │ │ │ +Page.next_page_number()[sorgente] │ │ │ │

    Returns the next page number. Raises InvalidPage if next page │ │ │ │ doesn’t exist.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Page.previous_page_number()[source]
    │ │ │ │ +Page.previous_page_number()[sorgente] │ │ │ │

    Returns the previous page number. Raises InvalidPage if previous │ │ │ │ page doesn’t exist.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Page.start_index()[source]
    │ │ │ │ +Page.start_index()[sorgente] │ │ │ │

    Returns the 1-based index of the first object on the page, relative to all │ │ │ │ of the objects in the paginator’s list. For example, when paginating a list │ │ │ │ of 5 objects with 2 objects per page, the second page’s │ │ │ │ start_index() would return 3.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -Page.end_index()[source]
    │ │ │ │ +Page.end_index()[sorgente] │ │ │ │

    Returns the 1-based index of the last object on the page, relative to all │ │ │ │ of the objects in the paginator’s list. For example, when paginating a list │ │ │ │ of 5 objects with 2 objects per page, the second page’s │ │ │ │ end_index() would return 4.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -337,32 +338,32 @@ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    Exceptions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -exception InvalidPage[source]
    │ │ │ │ +exception InvalidPage[sorgente] │ │ │ │

    A base class for exceptions raised when a paginator is passed an invalid │ │ │ │ page number.

    │ │ │ │
    │ │ │ │ │ │ │ │

    The Paginator.page() method raises an exception if the requested page is │ │ │ │ invalid (i.e. not an integer) or contains no objects. Generally, it’s enough │ │ │ │ to catch the InvalidPage exception, but if you’d like more granularity, │ │ │ │ you can catch either of the following exceptions:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -exception PageNotAnInteger[source]
    │ │ │ │ +exception PageNotAnInteger[sorgente] │ │ │ │

    Raised when page() is given a value that isn’t an integer.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -exception EmptyPage[source]
    │ │ │ │ +exception EmptyPage[sorgente] │ │ │ │

    Raised when page() is given a valid value but no objects │ │ │ │ exist on that page.

    │ │ │ │
    │ │ │ │ │ │ │ │

    Both of the exceptions are subclasses of InvalidPage, so you can handle │ │ │ │ them both with except InvalidPage.

    │ │ │ │
    │ │ │ │ @@ -395,37 +396,37 @@ │ │ │ │
  • Exceptions
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Database Functions

    │ │ │ │ + title="capitolo precedente">Database Functions

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    Request and response objects

    │ │ │ │ + title="capitolo successivo">Request and response objects

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    HttpRequest objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpRequest[source]
    │ │ │ │ +class HttpRequest[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Attributes

    │ │ │ │

    All attributes should be considered read-only, unless stated otherwise.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.scheme[source]
    │ │ │ │ +HttpRequest.scheme[sorgente] │ │ │ │

    A string representing the scheme of the request (http or https │ │ │ │ usually).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.body[source]
    │ │ │ │ +HttpRequest.body[sorgente] │ │ │ │

    The raw HTTP request body as a bytestring. This is useful for processing │ │ │ │ data in different ways than conventional HTML forms: binary images, │ │ │ │ XML payload etc. For processing conventional form data, use │ │ │ │ HttpRequest.POST.

    │ │ │ │

    You can also read from an HttpRequest using a file-like interface with │ │ │ │ HttpRequest.read() or HttpRequest.readline(). Accessing │ │ │ │ the body attribute after reading the request with either of these I/O │ │ │ │ @@ -153,15 +154,15 @@ │ │ │ │ do_something_else() │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.encoding[source]
    │ │ │ │ +HttpRequest.encoding[sorgente] │ │ │ │

    A string representing the current encoding used to decode form submission │ │ │ │ data (or None, which means the DEFAULT_CHARSET setting is │ │ │ │ used). You can write to this attribute to change the encoding used when │ │ │ │ accessing the form data. Any subsequent attribute accesses (such as reading │ │ │ │ from GET or POST) will use the new encoding value. │ │ │ │ Useful if you know the form data is not in the DEFAULT_CHARSET │ │ │ │ encoding.

    │ │ │ │ @@ -257,15 +258,15 @@ │ │ │ │ web servers like Nginx and Apache 2.4+.

    │ │ │ │

    HttpRequest.headers is a simpler way to access all HTTP-prefixed │ │ │ │ headers, plus CONTENT_LENGTH and CONTENT_TYPE.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.headers[source]
    │ │ │ │ +HttpRequest.headers[sorgente] │ │ │ │

    A case insensitive, dict-like object that provides access to all │ │ │ │ HTTP-prefixed headers (plus Content-Length and Content-Type) from │ │ │ │ the request.

    │ │ │ │

    The name of each header is stylized with title-casing (e.g. User-Agent) │ │ │ │ when it’s displayed. You can access headers case-insensitively:

    │ │ │ │
    >>> request.headers
    │ │ │ │  {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6', ...}
    │ │ │ │ @@ -396,26 +397,26 @@
    │ │ │ │  auser will return an instance of
    │ │ │ │  AnonymousUser. This is similar to the
    │ │ │ │  user attribute but it works in async contexts.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.get_host()[source]
    │ │ │ │ +HttpRequest.get_host()[sorgente] │ │ │ │

    Returns the originating host of the request using information from the │ │ │ │ HTTP_X_FORWARDED_HOST (if USE_X_FORWARDED_HOST is enabled) │ │ │ │ and HTTP_HOST headers, in that order. If they don’t provide a value, │ │ │ │ the method uses a combination of SERVER_NAME and SERVER_PORT as │ │ │ │ detailed in PEP 3333.

    │ │ │ │

    Example: "127.0.0.1:8000"

    │ │ │ │

    Raises django.core.exceptions.DisallowedHost if the host is not in │ │ │ │ ALLOWED_HOSTS or the domain name is invalid according to │ │ │ │ RFC 1034/1035.

    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    The get_host() method fails when the host is │ │ │ │ behind multiple proxies. One solution is to use middleware to rewrite │ │ │ │ the proxy headers, as in the following example:

    │ │ │ │
    class MultipleProxyMiddleware:
    │ │ │ │      FORWARDED_FOR_FIELDS = [
    │ │ │ │          "HTTP_X_FORWARDED_FOR",
    │ │ │ │          "HTTP_X_FORWARDED_HOST",
    │ │ │ │ @@ -443,64 +444,64 @@
    │ │ │ │  CommonMiddleware or
    │ │ │ │  CsrfViewMiddleware.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.get_port()[source]
    │ │ │ │ +HttpRequest.get_port()[sorgente] │ │ │ │

    Returns the originating port of the request using information from the │ │ │ │ HTTP_X_FORWARDED_PORT (if USE_X_FORWARDED_PORT is enabled) │ │ │ │ and SERVER_PORT META variables, in that order.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.get_full_path()[source]
    │ │ │ │ +HttpRequest.get_full_path()[sorgente] │ │ │ │

    Returns the path, plus an appended query string, if applicable.

    │ │ │ │

    Example: "/music/bands/the_beatles/?print=true"

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.get_full_path_info()[source]
    │ │ │ │ +HttpRequest.get_full_path_info()[sorgente] │ │ │ │

    Like get_full_path(), but uses path_info instead of │ │ │ │ path.

    │ │ │ │

    Example: "/minfo/music/bands/the_beatles/?print=true"

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.build_absolute_uri(location=None)[source]
    │ │ │ │ +HttpRequest.build_absolute_uri(location=None)[sorgente] │ │ │ │

    Returns the absolute URI form of location. If no location is provided, │ │ │ │ the location will be set to request.get_full_path().

    │ │ │ │

    If the location is already an absolute URI, it will not be altered. │ │ │ │ Otherwise the absolute URI is built using the server variables available in │ │ │ │ this request. For example:

    │ │ │ │
    >>> request.build_absolute_uri()
    │ │ │ │  'https://example.com/music/bands/the_beatles/?print=true'
    │ │ │ │  >>> request.build_absolute_uri("/bands/")
    │ │ │ │  'https://example.com/bands/'
    │ │ │ │  >>> request.build_absolute_uri("https://example2.com/bands/")
    │ │ │ │  'https://example2.com/bands/'
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    Mixing HTTP and HTTPS on the same site is discouraged, therefore │ │ │ │ build_absolute_uri() will always generate an │ │ │ │ absolute URI with the same scheme the current request has. If you need │ │ │ │ to redirect users to HTTPS, it’s best to let your web server redirect │ │ │ │ all HTTP traffic to HTTPS.

    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ +HttpRequest.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)[sorgente] │ │ │ │

    Returns a cookie value for a signed cookie, or raises a │ │ │ │ django.core.signing.BadSignature exception if the signature is │ │ │ │ no longer valid. If you provide the default argument the exception │ │ │ │ will be suppressed and that default value will be returned instead.

    │ │ │ │

    The optional salt argument can be used to provide extra protection │ │ │ │ against brute force attacks on your secret key. If supplied, the │ │ │ │ max_age argument will be checked against the signed timestamp │ │ │ │ @@ -524,22 +525,22 @@ │ │ │ │ │ │ │ │ │ │ │ │

    See cryptographic signing for more information.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.is_secure()[source]
    │ │ │ │ +HttpRequest.is_secure()[sorgente] │ │ │ │

    Returns True if the request is secure; that is, if it was made with │ │ │ │ HTTPS.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.accepts(mime_type)[source]
    │ │ │ │ +HttpRequest.accepts(mime_type)[sorgente] │ │ │ │

    Returns True if the request Accept header matches the mime_type │ │ │ │ argument:

    │ │ │ │
    >>> request.accepts("text/html")
    │ │ │ │  True
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    Most browsers send Accept: */* by default, so this would return │ │ │ │ @@ -551,30 +552,30 @@ │ │ │ │ you are using some form of caching like Django’s cache middleware, you should decorate the view with │ │ │ │ vary_on_headers('Accept') so that the responses are │ │ │ │ properly cached.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.read(size=None)[source]
    │ │ │ │ +HttpRequest.read(size=None)[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.readline()[source]
    │ │ │ │ +HttpRequest.readline()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.readlines()[source]
    │ │ │ │ +HttpRequest.readlines()[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpRequest.__iter__()[source]
    │ │ │ │ +HttpRequest.__iter__()[sorgente] │ │ │ │

    Methods implementing a file-like interface for reading from an │ │ │ │ HttpRequest instance. This makes it possible to consume an incoming │ │ │ │ request in a streaming fashion. A common use-case would be to process a │ │ │ │ big XML payload with an iterative parser without constructing a whole │ │ │ │ XML tree in memory.

    │ │ │ │

    Given this standard interface, an HttpRequest instance can be │ │ │ │ passed directly to an XML parser such as │ │ │ │ @@ -589,15 +590,15 @@ │ │ │ │ │ │ │ │

    │ │ │ │
    │ │ │ │
    │ │ │ │

    QueryDict objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class QueryDict[source]
    │ │ │ │ +class QueryDict[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    In an HttpRequest object, the GET and │ │ │ │ POST attributes are instances of django.http.QueryDict, │ │ │ │ a dictionary-like class customized to deal with multiple values for the same │ │ │ │ key. This is necessary because some HTML form elements, notably │ │ │ │ <select multiple>, pass multiple values for the same key.

    │ │ │ │ @@ -606,15 +607,15 @@ │ │ │ │ need to use QueryDict.copy().

    │ │ │ │
    │ │ │ │

    Methods

    │ │ │ │

    QueryDict implements all the standard dictionary methods because it’s │ │ │ │ a subclass of dictionary. Exceptions are outlined here:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.__init__(query_string=None, mutable=False, encoding=None)[source]
    │ │ │ │ +QueryDict.__init__(query_string=None, mutable=False, encoding=None)[sorgente] │ │ │ │

    Instantiates a QueryDict object based on query_string.

    │ │ │ │
    >>> QueryDict("a=1&a=2&c=3")
    │ │ │ │  <QueryDict: {'a': ['1', '2'], 'c': ['3']}>
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    If query_string is not passed in, the resulting QueryDict will be │ │ │ │ empty (it will have no keys or values).

    │ │ │ │ @@ -625,15 +626,15 @@ │ │ │ │

    Strings for setting both keys and values will be converted from encoding │ │ │ │ to str. If encoding is not set, it defaults to │ │ │ │ DEFAULT_CHARSET.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -classmethod QueryDict.fromkeys(iterable, value='', mutable=False, encoding=None)[source]
    │ │ │ │ +classmethod QueryDict.fromkeys(iterable, value='', mutable=False, encoding=None)[sorgente] │ │ │ │

    Creates a new QueryDict with keys from iterable and each value │ │ │ │ equal to value. For example:

    │ │ │ │
    >>> QueryDict.fromkeys(["a", "a", "b"], value="val")
    │ │ │ │  <QueryDict: {'a': ['val', 'val'], 'b': ['val']}>
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -646,15 +647,15 @@ │ │ │ │ django.utils.datastructures.MultiValueDictKeyError if the key does not │ │ │ │ exist. (This is a subclass of Python’s standard KeyError, so you can │ │ │ │ stick to catching KeyError.)

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.__setitem__(key, value)[source]
    │ │ │ │ +QueryDict.__setitem__(key, value)[sorgente] │ │ │ │

    Sets the given key to [value] (a list whose single element is │ │ │ │ value). Note that this, as other dictionary functions that have side │ │ │ │ effects, can only be called on a mutable QueryDict (such as one that │ │ │ │ was created via QueryDict.copy()).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -669,15 +670,15 @@ │ │ │ │ QueryDict.get(key, default=None) │ │ │ │

    Uses the same logic as __getitem__(), with a hook for returning a │ │ │ │ default value if the key doesn’t exist.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.setdefault(key, default=None)[source]
    │ │ │ │ +QueryDict.setdefault(key, default=None)[sorgente] │ │ │ │

    Like dict.setdefault(), except it uses __setitem__() internally.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ QueryDict.update(other_dict)
    │ │ │ │

    Takes either a QueryDict or a dictionary. Like dict.update(), │ │ │ │ @@ -718,42 +719,42 @@ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │ │ │ │

    In addition, QueryDict has the following methods:

    │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.copy()[source]
    │ │ │ │ +QueryDict.copy()[sorgente] │ │ │ │

    Returns a copy of the object using copy.deepcopy(). This copy will │ │ │ │ be mutable even if the original was not.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ QueryDict.getlist(key, default=None)
    │ │ │ │

    Returns a list of the data with the requested key. Returns an empty list if │ │ │ │ the key doesn’t exist and default is None. It’s guaranteed to │ │ │ │ return a list unless the default value provided isn’t a list.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.setlist(key, list_)[source]
    │ │ │ │ +QueryDict.setlist(key, list_)[sorgente] │ │ │ │

    Sets the given key to list_ (unlike __setitem__()).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.appendlist(key, item)[source]
    │ │ │ │ +QueryDict.appendlist(key, item)[sorgente] │ │ │ │

    Appends an item to the internal list associated with key.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.setlistdefault(key, default_list=None)[source]
    │ │ │ │ +QueryDict.setlistdefault(key, default_list=None)[sorgente] │ │ │ │

    Like setdefault(), except it takes a list of values instead of a │ │ │ │ single value.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ QueryDict.lists()
    │ │ │ │ @@ -764,27 +765,27 @@ │ │ │ │ [('a', ['1', '2', '3'])] │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.pop(key)[source]
    │ │ │ │ +QueryDict.pop(key)[sorgente] │ │ │ │

    Returns a list of values for the given key and removes them from the │ │ │ │ dictionary. Raises KeyError if the key does not exist. For example:

    │ │ │ │
    >>> q = QueryDict("a=1&a=2&a=3", mutable=True)
    │ │ │ │  >>> q.pop("a")
    │ │ │ │  ['1', '2', '3']
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.popitem()[source]
    │ │ │ │ +QueryDict.popitem()[sorgente] │ │ │ │

    Removes an arbitrary member of the dictionary (since there’s no concept │ │ │ │ of ordering), and returns a two value tuple containing the key and a list │ │ │ │ of all values for the key. Raises KeyError when called on an empty │ │ │ │ dictionary. For example:

    │ │ │ │
    >>> q = QueryDict("a=1&a=2&a=3", mutable=True)
    │ │ │ │  >>> q.popitem()
    │ │ │ │  ('a', ['1', '2', '3'])
    │ │ │ │ @@ -803,15 +804,15 @@
    │ │ │ │  {'a': '5'}
    │ │ │ │  
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -QueryDict.urlencode(safe=None)[source]
    │ │ │ │ +QueryDict.urlencode(safe=None)[sorgente] │ │ │ │

    Returns a string of the data in query string format. For example:

    │ │ │ │
    >>> q = QueryDict("a=2&b=3&b=5")
    │ │ │ │  >>> q.urlencode()
    │ │ │ │  'a=2&b=3&b=5'
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    Use the safe parameter to pass characters which don’t require encoding. │ │ │ │ @@ -826,15 +827,15 @@ │ │ │ │ │ │ │ │

    │ │ │ │
    │ │ │ │
    │ │ │ │

    HttpResponse objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponse[source]
    │ │ │ │ +class HttpResponse[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    In contrast to HttpRequest objects, which are created automatically by │ │ │ │ Django, HttpResponse objects are your responsibility. Each view you │ │ │ │ write is responsible for instantiating, populating, and returning an │ │ │ │ HttpResponse.

    │ │ │ │

    The HttpResponse class lives in the django.http module.

    │ │ │ │ @@ -891,15 +892,15 @@ │ │ │ │
    >>> response = HttpResponse(headers={"Age": 120})
    │ │ │ │  
    │ │ │ │
    │ │ │ │

    For setting the Cache-Control and Vary header fields, it is recommended │ │ │ │ to use the patch_cache_control() and │ │ │ │ patch_vary_headers() methods from │ │ │ │ django.utils.cache, since these fields can have multiple, comma-separated │ │ │ │ -values. The “patch” methods ensure that other values, e.g. added by a │ │ │ │ +values. The «patch» methods ensure that other values, e.g. added by a │ │ │ │ middleware, are not removed.

    │ │ │ │

    HTTP header fields cannot contain newlines. An attempt to set a header field │ │ │ │ containing a newline character (CR or LF) will raise BadHeaderError

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Telling the browser to treat the response as a file attachment

    │ │ │ │

    To tell the browser to treat the response as a file attachment, set the │ │ │ │ @@ -918,15 +919,15 @@ │ │ │ │ it’s easy to forget the syntax, so we’ve included it here.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    Attributes

    │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpResponse.content[source]
    │ │ │ │ +HttpResponse.content[sorgente] │ │ │ │

    A bytestring representing the content, encoded from a string if necessary.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ HttpResponse.cookies
    │ │ │ │

    A http.cookies.SimpleCookie object holding the cookies included │ │ │ │ @@ -982,15 +983,15 @@ │ │ │ │

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    Methods

    │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpResponse.__init__(content=b'', content_type=None, status=200, reason=None, charset=None, headers=None)[source]
    │ │ │ │ +HttpResponse.__init__(content=b'', content_type=None, status=200, reason=None, charset=None, headers=None)[sorgente] │ │ │ │

    Instantiates an HttpResponse object with the given page content, │ │ │ │ content type, and headers.

    │ │ │ │

    content is most commonly an iterator, bytestring, memoryview, │ │ │ │ or string. Other types will be converted to a bytestring by encoding their │ │ │ │ string representation. Iterators should return strings or bytestrings and │ │ │ │ those will be joined together to form the content of the response.

    │ │ │ │

    content_type is the MIME type optionally completed by a character set │ │ │ │ @@ -1087,15 +1088,15 @@ │ │ │ │ isn’t supported by all browsers, so it’s not a replacement for Django’s │ │ │ │ CSRF protection, but rather a defense in depth measure.

    │ │ │ │

    Use samesite='None' (string) to explicitly state that this cookie is │ │ │ │ sent with all same-site and cross-site requests.

    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    RFC 6265 states that user agents should │ │ │ │ support cookies of at least 4096 bytes. For many browsers this is also │ │ │ │ the maximum size. Django will not raise an exception if there’s an │ │ │ │ attempt to store a cookie of more than 4096 bytes, but many browsers │ │ │ │ will not set the cookie correctly.

    │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -1126,33 +1127,33 @@ │ │ │ │ HttpResponse.close() │ │ │ │

    This method is called at the end of the request directly by the WSGI │ │ │ │ server.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpResponse.write(content)[source]
    │ │ │ │ +HttpResponse.write(content)[sorgente] │ │ │ │

    This method makes an HttpResponse instance a file-like object.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ HttpResponse.flush()
    │ │ │ │

    This method makes an HttpResponse instance a file-like object.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpResponse.tell()[source]
    │ │ │ │ +HttpResponse.tell()[sorgente] │ │ │ │

    This method makes an HttpResponse instance a file-like object.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpResponse.getvalue()[source]
    │ │ │ │ +HttpResponse.getvalue()[sorgente] │ │ │ │

    Returns the value of HttpResponse.content. This method makes │ │ │ │ an HttpResponse instance a stream-like object.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ HttpResponse.readable()
    │ │ │ │ @@ -1165,35 +1166,35 @@ │ │ │ │ HttpResponse.seekable() │ │ │ │

    Always False. This method makes an HttpResponse instance a │ │ │ │ stream-like object.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpResponse.writable()[source]
    │ │ │ │ +HttpResponse.writable()[sorgente] │ │ │ │

    Always True. This method makes an HttpResponse instance a │ │ │ │ stream-like object.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -HttpResponse.writelines(lines)[source]
    │ │ │ │ +HttpResponse.writelines(lines)[sorgente] │ │ │ │

    Writes a list of lines to the response. Line separators are not added. This │ │ │ │ method makes an HttpResponse instance a stream-like object.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    HttpResponse subclasses

    │ │ │ │

    Django includes a number of HttpResponse subclasses that handle different │ │ │ │ types of HTTP responses. Like HttpResponse, these subclasses live in │ │ │ │ django.http.

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseRedirect[source]
    │ │ │ │ +class HttpResponseRedirect[sorgente] │ │ │ │

    The first argument to the constructor is required – the path to redirect │ │ │ │ to. This can be a fully qualified URL │ │ │ │ (e.g. 'https://www.yahoo.com/search/'), an absolute path with no domain │ │ │ │ (e.g. '/search/'), or even a relative path (e.g. 'search/'). In that │ │ │ │ last case, the client browser will reconstruct the full URL itself │ │ │ │ according to the current path. See HttpResponse for other optional │ │ │ │ constructor arguments. Note that this returns an HTTP status code 302.

    │ │ │ │ @@ -1204,67 +1205,67 @@ │ │ │ │ to (equivalent to the Location response header).

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponsePermanentRedirect[source]
    │ │ │ │ +class HttpResponsePermanentRedirect[sorgente] │ │ │ │

    Like HttpResponseRedirect, but it returns a permanent redirect │ │ │ │ -(HTTP status code 301) instead of a “found” redirect (status code 302).

    │ │ │ │ +(HTTP status code 301) instead of a «found» redirect (status code 302).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseNotModified[source]
    │ │ │ │ +class HttpResponseNotModified[sorgente] │ │ │ │

    The constructor doesn’t take any arguments and no content should be added │ │ │ │ to this response. Use this to designate that a page hasn’t been modified │ │ │ │ since the user’s last request (status code 304).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseBadRequest[source]
    │ │ │ │ +class HttpResponseBadRequest[sorgente] │ │ │ │

    Acts just like HttpResponse but uses a 400 status code.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseNotFound[source]
    │ │ │ │ +class HttpResponseNotFound[sorgente] │ │ │ │

    Acts just like HttpResponse but uses a 404 status code.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseForbidden[source]
    │ │ │ │ +class HttpResponseForbidden[sorgente] │ │ │ │

    Acts just like HttpResponse but uses a 403 status code.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseNotAllowed[source]
    │ │ │ │ +class HttpResponseNotAllowed[sorgente] │ │ │ │

    Like HttpResponse, but uses a 405 status code. The first argument │ │ │ │ to the constructor is required: a list of permitted methods (e.g. │ │ │ │ ['GET', 'POST']).

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseGone[source]
    │ │ │ │ +class HttpResponseGone[sorgente] │ │ │ │

    Acts just like HttpResponse but uses a 410 status code.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseServerError[source]
    │ │ │ │ +class HttpResponseServerError[sorgente] │ │ │ │

    Acts just like HttpResponse but uses a 500 status code.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ -

    Note

    │ │ │ │ +

    Nota

    │ │ │ │

    If a custom subclass of HttpResponse implements a render │ │ │ │ method, Django will treat it as emulating a │ │ │ │ SimpleTemplateResponse, and the │ │ │ │ render method must itself return a valid response object.

    │ │ │ │
    │ │ │ │
    │ │ │ │

    Custom response classes

    │ │ │ │ @@ -1281,15 +1282,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │

    JsonResponse objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs)[source]
    │ │ │ │ +class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs)[sorgente] │ │ │ │

    An HttpResponse subclass that helps to create a JSON-encoded │ │ │ │ response. It inherits most behavior from its superclass with a couple │ │ │ │ differences:

    │ │ │ │

    Its default Content-Type header is set to application/json.

    │ │ │ │

    The first parameter, data, should be a dict instance. If the │ │ │ │ safe parameter is set to False (see below) it can be any │ │ │ │ JSON-serializable object.

    │ │ │ │ @@ -1321,15 +1322,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

    Without passing safe=False, a TypeError will be raised.

    │ │ │ │

    Note that an API based on dict objects is more extensible, flexible, and │ │ │ │ makes it easier to maintain forwards compatibility. Therefore, you should avoid │ │ │ │ using non-dict objects in JSON-encoded response.

    │ │ │ │
    │ │ │ │ -

    Warning

    │ │ │ │ +

    Avvertimento

    │ │ │ │

    Before the 5th edition of ECMAScript it was possible to │ │ │ │ poison the JavaScript Array constructor. For this reason, Django does │ │ │ │ not allow passing non-dict objects to the │ │ │ │ JsonResponse constructor by default. However, most │ │ │ │ modern browsers implement ECMAScript 5 which removes this attack vector. │ │ │ │ Therefore it is possible to disable this security precaution.

    │ │ │ │
    │ │ │ │ @@ -1344,15 +1345,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │

    StreamingHttpResponse objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class StreamingHttpResponse[source]
    │ │ │ │ +class StreamingHttpResponse[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The StreamingHttpResponse class is used to stream a response from │ │ │ │ Django to the browser.

    │ │ │ │
    │ │ │ │

    Advanced usage

    │ │ │ │

    StreamingHttpResponse is somewhat advanced, in that it is │ │ │ │ @@ -1405,15 +1406,15 @@ │ │ │ │ │ │ │ │

    The HttpResponseBase base class is common between │ │ │ │ HttpResponse and StreamingHttpResponse.

    │ │ │ │
    │ │ │ │

    Attributes

    │ │ │ │
    │ │ │ │
    │ │ │ │ -StreamingHttpResponse.streaming_content[source]
    │ │ │ │ +StreamingHttpResponse.streaming_content[sorgente] │ │ │ │

    An iterator of the response content, bytestring encoded according to │ │ │ │ HttpResponse.charset.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ StreamingHttpResponse.status_code
    │ │ │ │ @@ -1475,15 +1476,15 @@ │ │ │ │ handle disconnections in the view itself.

    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    FileResponse objects

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class FileResponse(open_file, as_attachment=False, filename='', **kwargs)[source]
    │ │ │ │ +class FileResponse(open_file, as_attachment=False, filename='', **kwargs)[sorgente] │ │ │ │

    FileResponse is a subclass of StreamingHttpResponse │ │ │ │ optimized for binary files. It uses wsgi.file_wrapper if provided by the wsgi │ │ │ │ server, otherwise it streams the file out in small chunks.

    │ │ │ │

    If as_attachment=True, the Content-Disposition header is set to │ │ │ │ attachment, which asks the browser to offer the file to the user as a │ │ │ │ download. Otherwise, a Content-Disposition header with a value of │ │ │ │ inline (the browser default) will be set only if a filename is │ │ │ │ @@ -1512,27 +1513,27 @@ │ │ │ │

    In order to stream a file asynchronously you need to use a third-party │ │ │ │ package that provides an asynchronous file API, such as aiofiles.

    │ │ │ │ │ │ │ │
    │ │ │ │

    Methods

    │ │ │ │
    │ │ │ │
    │ │ │ │ -FileResponse.set_headers(open_file)[source]
    │ │ │ │ +FileResponse.set_headers(open_file)[sorgente] │ │ │ │

    This method is automatically called during the response initialization and │ │ │ │ set various headers (Content-Length, Content-Type, and │ │ │ │ Content-Disposition) depending on open_file.

    │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    HttpResponseBase class

    │ │ │ │
    │ │ │ │
    │ │ │ │ -class HttpResponseBase[source]
    │ │ │ │ +class HttpResponseBase[sorgente] │ │ │ │
    │ │ │ │ │ │ │ │

    The HttpResponseBase class is common to all Django responses. │ │ │ │ It should not be used to create responses directly, but it can be │ │ │ │ useful for type-checking.

    │ │ │ │
    │ │ │ │ │ │ │ │ @@ -1599,37 +1600,37 @@ │ │ │ │
  • HttpResponseBase class
  • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    Previous topic

    │ │ │ │ +

    Argomento precedente

    │ │ │ │

    Paginator

    │ │ │ │ + title="capitolo precedente">Paginator

    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Next topic

    │ │ │ │ +

    Argomento successivo

    │ │ │ │

    SchemaEditor

    │ │ │ │ + title="capitolo successivo">SchemaEditor

    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    Last update:

    │ │ │ │ -

    Jun 26, 2024

    │ │ │ │ +

    giu 26, 2024

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │