diff options
Diffstat (limited to 'django/forms/fields.py')
| -rw-r--r-- | django/forms/fields.py | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/django/forms/fields.py b/django/forms/fields.py index d1ba8af654..62d68985c0 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -15,6 +15,7 @@ from decimal import Decimal, DecimalException from io import BytesIO from urllib.parse import urlsplit, urlunsplit +from django.conf import settings from django.core import validators from django.core.exceptions import ValidationError from django.forms.boundfield import BoundField @@ -762,14 +763,19 @@ class URLField(CharField): def __init__(self, *, assume_scheme=None, **kwargs): if assume_scheme is None: - warnings.warn( - "The default scheme will be changed from 'http' to 'https' in Django " - "6.0. Pass the forms.URLField.assume_scheme argument to silence this " - "warning.", - RemovedInDjango60Warning, - stacklevel=2, - ) - assume_scheme = "http" + if settings.FORMS_URLFIELD_ASSUME_HTTPS: + assume_scheme = "https" + else: + warnings.warn( + "The default scheme will be changed from 'http' to 'https' in " + "Django 6.0. Pass the forms.URLField.assume_scheme argument to " + "silence this warning, or set the FORMS_URLFIELD_ASSUME_HTTPS " + "transitional setting to True to opt into using 'https' as the new " + "default scheme.", + RemovedInDjango60Warning, + stacklevel=2, + ) + assume_scheme = "http" # RemovedInDjango60Warning: When the deprecation ends, replace with: # self.assume_scheme = assume_scheme or "https" self.assume_scheme = assume_scheme |
