46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
|
|
from django import VERSION as DJANGO_VERSION
|
||
|
|
from django import forms
|
||
|
|
from django.conf import settings
|
||
|
|
from django.core.exceptions import ImproperlyConfigured
|
||
|
|
|
||
|
|
# A setting that can be used in foreign key declarations
|
||
|
|
AUTH_USER_MODEL = getattr(settings, "AUTH_USER_MODEL", "auth.User")
|
||
|
|
# Two additional settings that are useful in South migrations when
|
||
|
|
# specifying the user model in the FakeORM
|
||
|
|
try:
|
||
|
|
AUTH_USER_APP_LABEL, AUTH_USER_MODEL_NAME = AUTH_USER_MODEL.rsplit(".", 1)
|
||
|
|
except ValueError:
|
||
|
|
raise ImproperlyConfigured(
|
||
|
|
"AUTH_USER_MODEL must be of the form 'app_label.model_name'"
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
try:
|
||
|
|
from http import HTTPMethod
|
||
|
|
except ImportError:
|
||
|
|
# For Python < 3.11
|
||
|
|
from enum import Enum
|
||
|
|
|
||
|
|
class HTTPMethod(Enum):
|
||
|
|
GET = "GET"
|
||
|
|
HEAD = "HEAD"
|
||
|
|
OPTIONS = "OPTIONS"
|
||
|
|
POST = "POST"
|
||
|
|
PUT = "PUT"
|
||
|
|
DELETE = "DELETE"
|
||
|
|
PATCH = "PATCH"
|
||
|
|
|
||
|
|
|
||
|
|
URLField = forms.URLField
|
||
|
|
|
||
|
|
# Prevent deprecation warning about the default scheme changing from "http" to
|
||
|
|
# "https" in Django 5.0, while also avoiding the need to set the
|
||
|
|
# FORMS_URLFIELD_ASSUME_HTTPS that would raise a different deprecation warning.
|
||
|
|
# Remove the following block when the minimum Django version is >= 5.0.
|
||
|
|
if (5, 0) <= DJANGO_VERSION < (6, 0):
|
||
|
|
|
||
|
|
class URLField(forms.URLField):
|
||
|
|
def __init__(self, *args, **kwargs):
|
||
|
|
kwargs.setdefault("assume_scheme", "https")
|
||
|
|
super().__init__(*args, **kwargs)
|