summaryrefslogtreecommitdiff
path: root/django/forms/fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/forms/fields.py')
-rw-r--r--django/forms/fields.py22
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