Refs #33476 -- Reformatted code with Black.
This commit is contained in:
parent
f68fa8b45d
commit
9c19aff7c7
|
@ -1,6 +1,6 @@
|
|||
from django.utils.version import get_version
|
||||
|
||||
VERSION = (4, 1, 0, 'alpha', 0)
|
||||
VERSION = (4, 1, 0, "alpha", 0)
|
||||
|
||||
__version__ = get_version(VERSION)
|
||||
|
||||
|
@ -19,6 +19,6 @@ def setup(set_prefix=True):
|
|||
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
|
||||
if set_prefix:
|
||||
set_script_prefix(
|
||||
'/' if settings.FORCE_SCRIPT_NAME is None else settings.FORCE_SCRIPT_NAME
|
||||
"/" if settings.FORCE_SCRIPT_NAME is None else settings.FORCE_SCRIPT_NAME
|
||||
)
|
||||
apps.populate(settings.INSTALLED_APPS)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from .config import AppConfig
|
||||
from .registry import apps
|
||||
|
||||
__all__ = ['AppConfig', 'apps']
|
||||
__all__ = ["AppConfig", "apps"]
|
||||
|
|
|
@ -6,8 +6,8 @@ from django.core.exceptions import ImproperlyConfigured
|
|||
from django.utils.functional import cached_property
|
||||
from django.utils.module_loading import import_string, module_has_submodule
|
||||
|
||||
APPS_MODULE_NAME = 'apps'
|
||||
MODELS_MODULE_NAME = 'models'
|
||||
APPS_MODULE_NAME = "apps"
|
||||
MODELS_MODULE_NAME = "models"
|
||||
|
||||
|
||||
class AppConfig:
|
||||
|
@ -30,7 +30,7 @@ class AppConfig:
|
|||
|
||||
# Last component of the Python path to the application e.g. 'admin'.
|
||||
# This value must be unique across a Django project.
|
||||
if not hasattr(self, 'label'):
|
||||
if not hasattr(self, "label"):
|
||||
self.label = app_name.rpartition(".")[2]
|
||||
if not self.label.isidentifier():
|
||||
raise ImproperlyConfigured(
|
||||
|
@ -38,12 +38,12 @@ class AppConfig:
|
|||
)
|
||||
|
||||
# Human-readable name for the application e.g. "Admin".
|
||||
if not hasattr(self, 'verbose_name'):
|
||||
if not hasattr(self, "verbose_name"):
|
||||
self.verbose_name = self.label.title()
|
||||
|
||||
# Filesystem path to the application directory e.g.
|
||||
# '/path/to/django/contrib/admin'.
|
||||
if not hasattr(self, 'path'):
|
||||
if not hasattr(self, "path"):
|
||||
self.path = self._path_from_module(app_module)
|
||||
|
||||
# Module containing models e.g. <module 'django.contrib.admin.models'
|
||||
|
@ -56,11 +56,12 @@ class AppConfig:
|
|||
self.models = None
|
||||
|
||||
def __repr__(self):
|
||||
return '<%s: %s>' % (self.__class__.__name__, self.label)
|
||||
return "<%s: %s>" % (self.__class__.__name__, self.label)
|
||||
|
||||
@cached_property
|
||||
def default_auto_field(self):
|
||||
from django.conf import settings
|
||||
|
||||
return settings.DEFAULT_AUTO_FIELD
|
||||
|
||||
@property
|
||||
|
@ -72,9 +73,9 @@ class AppConfig:
|
|||
# See #21874 for extended discussion of the behavior of this method in
|
||||
# various cases.
|
||||
# Convert to list because __path__ may not support indexing.
|
||||
paths = list(getattr(module, '__path__', []))
|
||||
paths = list(getattr(module, "__path__", []))
|
||||
if len(paths) != 1:
|
||||
filename = getattr(module, '__file__', None)
|
||||
filename = getattr(module, "__file__", None)
|
||||
if filename is not None:
|
||||
paths = [os.path.dirname(filename)]
|
||||
else:
|
||||
|
@ -85,12 +86,14 @@ class AppConfig:
|
|||
raise ImproperlyConfigured(
|
||||
"The app module %r has multiple filesystem locations (%r); "
|
||||
"you must configure this app with an AppConfig subclass "
|
||||
"with a 'path' class attribute." % (module, paths))
|
||||
"with a 'path' class attribute." % (module, paths)
|
||||
)
|
||||
elif not paths:
|
||||
raise ImproperlyConfigured(
|
||||
"The app module %r has no filesystem location, "
|
||||
"you must configure this app with an AppConfig subclass "
|
||||
"with a 'path' class attribute." % module)
|
||||
"with a 'path' class attribute." % module
|
||||
)
|
||||
return paths[0]
|
||||
|
||||
@classmethod
|
||||
|
@ -116,7 +119,7 @@ class AppConfig:
|
|||
# If the apps module defines more than one AppConfig subclass,
|
||||
# the default one can declare default = True.
|
||||
if module_has_submodule(app_module, APPS_MODULE_NAME):
|
||||
mod_path = '%s.%s' % (entry, APPS_MODULE_NAME)
|
||||
mod_path = "%s.%s" % (entry, APPS_MODULE_NAME)
|
||||
mod = import_module(mod_path)
|
||||
# Check if there's exactly one AppConfig candidate,
|
||||
# excluding those that explicitly define default = False.
|
||||
|
@ -124,9 +127,9 @@ class AppConfig:
|
|||
(name, candidate)
|
||||
for name, candidate in inspect.getmembers(mod, inspect.isclass)
|
||||
if (
|
||||
issubclass(candidate, cls) and
|
||||
candidate is not cls and
|
||||
getattr(candidate, 'default', True)
|
||||
issubclass(candidate, cls)
|
||||
and candidate is not cls
|
||||
and getattr(candidate, "default", True)
|
||||
)
|
||||
]
|
||||
if len(app_configs) == 1:
|
||||
|
@ -137,13 +140,13 @@ class AppConfig:
|
|||
app_configs = [
|
||||
(name, candidate)
|
||||
for name, candidate in app_configs
|
||||
if getattr(candidate, 'default', False)
|
||||
if getattr(candidate, "default", False)
|
||||
]
|
||||
if len(app_configs) > 1:
|
||||
candidates = [repr(name) for name, _ in app_configs]
|
||||
raise RuntimeError(
|
||||
'%r declares more than one default AppConfig: '
|
||||
'%s.' % (mod_path, ', '.join(candidates))
|
||||
"%r declares more than one default AppConfig: "
|
||||
"%s." % (mod_path, ", ".join(candidates))
|
||||
)
|
||||
elif len(app_configs) == 1:
|
||||
app_config_class = app_configs[0][1]
|
||||
|
@ -165,7 +168,7 @@ class AppConfig:
|
|||
# If the last component of entry starts with an uppercase letter,
|
||||
# then it was likely intended to be an app config class; if not,
|
||||
# an app module. Provide a nice error message in both cases.
|
||||
mod_path, _, cls_name = entry.rpartition('.')
|
||||
mod_path, _, cls_name = entry.rpartition(".")
|
||||
if mod_path and cls_name[0].isupper():
|
||||
# We could simply re-trigger the string import exception, but
|
||||
# we're going the extra mile and providing a better error
|
||||
|
@ -178,9 +181,12 @@ class AppConfig:
|
|||
for name, candidate in inspect.getmembers(mod, inspect.isclass)
|
||||
if issubclass(candidate, cls) and candidate is not cls
|
||||
]
|
||||
msg = "Module '%s' does not contain a '%s' class." % (mod_path, cls_name)
|
||||
msg = "Module '%s' does not contain a '%s' class." % (
|
||||
mod_path,
|
||||
cls_name,
|
||||
)
|
||||
if candidates:
|
||||
msg += ' Choices are: %s.' % ', '.join(candidates)
|
||||
msg += " Choices are: %s." % ", ".join(candidates)
|
||||
raise ImportError(msg)
|
||||
else:
|
||||
# Re-trigger the module import exception.
|
||||
|
@ -189,8 +195,7 @@ class AppConfig:
|
|||
# Check for obvious errors. (This check prevents duck typing, but
|
||||
# it could be removed if it became a problem in practice.)
|
||||
if not issubclass(app_config_class, AppConfig):
|
||||
raise ImproperlyConfigured(
|
||||
"'%s' isn't a subclass of AppConfig." % entry)
|
||||
raise ImproperlyConfigured("'%s' isn't a subclass of AppConfig." % entry)
|
||||
|
||||
# Obtain app name here rather than in AppClass.__init__ to keep
|
||||
# all error checking for entries in INSTALLED_APPS in one place.
|
||||
|
@ -198,16 +203,15 @@ class AppConfig:
|
|||
try:
|
||||
app_name = app_config_class.name
|
||||
except AttributeError:
|
||||
raise ImproperlyConfigured(
|
||||
"'%s' must supply a name attribute." % entry
|
||||
)
|
||||
raise ImproperlyConfigured("'%s' must supply a name attribute." % entry)
|
||||
|
||||
# Ensure app_name points to a valid module.
|
||||
try:
|
||||
app_module = import_module(app_name)
|
||||
except ImportError:
|
||||
raise ImproperlyConfigured(
|
||||
"Cannot import '%s'. Check that '%s.%s.name' is correct." % (
|
||||
"Cannot import '%s'. Check that '%s.%s.name' is correct."
|
||||
% (
|
||||
app_name,
|
||||
app_config_class.__module__,
|
||||
app_config_class.__qualname__,
|
||||
|
@ -231,7 +235,8 @@ class AppConfig:
|
|||
return self.models[model_name.lower()]
|
||||
except KeyError:
|
||||
raise LookupError(
|
||||
"App '%s' doesn't have a '%s' model." % (self.label, model_name))
|
||||
"App '%s' doesn't have a '%s' model." % (self.label, model_name)
|
||||
)
|
||||
|
||||
def get_models(self, include_auto_created=False, include_swapped=False):
|
||||
"""
|
||||
|
@ -260,7 +265,7 @@ class AppConfig:
|
|||
self.models = self.apps.all_models[self.label]
|
||||
|
||||
if module_has_submodule(self.module, MODELS_MODULE_NAME):
|
||||
models_module_name = '%s.%s' % (self.name, MODELS_MODULE_NAME)
|
||||
models_module_name = "%s.%s" % (self.name, MODELS_MODULE_NAME)
|
||||
self.models_module = import_module(models_module_name)
|
||||
|
||||
def ready(self):
|
||||
|
|
|
@ -21,7 +21,7 @@ class Apps:
|
|||
# installed_apps is set to None when creating the master registry
|
||||
# because it cannot be populated at that point. Other registries must
|
||||
# provide a list of installed apps and are populated immediately.
|
||||
if installed_apps is None and hasattr(sys.modules[__name__], 'apps'):
|
||||
if installed_apps is None and hasattr(sys.modules[__name__], "apps"):
|
||||
raise RuntimeError("You must supply an installed_apps argument.")
|
||||
|
||||
# Mapping of app labels => model names => model classes. Every time a
|
||||
|
@ -92,20 +92,22 @@ class Apps:
|
|||
if app_config.label in self.app_configs:
|
||||
raise ImproperlyConfigured(
|
||||
"Application labels aren't unique, "
|
||||
"duplicates: %s" % app_config.label)
|
||||
"duplicates: %s" % app_config.label
|
||||
)
|
||||
|
||||
self.app_configs[app_config.label] = app_config
|
||||
app_config.apps = self
|
||||
|
||||
# Check for duplicate app names.
|
||||
counts = Counter(
|
||||
app_config.name for app_config in self.app_configs.values())
|
||||
duplicates = [
|
||||
name for name, count in counts.most_common() if count > 1]
|
||||
app_config.name for app_config in self.app_configs.values()
|
||||
)
|
||||
duplicates = [name for name, count in counts.most_common() if count > 1]
|
||||
if duplicates:
|
||||
raise ImproperlyConfigured(
|
||||
"Application names aren't unique, "
|
||||
"duplicates: %s" % ", ".join(duplicates))
|
||||
"duplicates: %s" % ", ".join(duplicates)
|
||||
)
|
||||
|
||||
self.apps_ready = True
|
||||
|
||||
|
@ -201,7 +203,7 @@ class Apps:
|
|||
self.check_apps_ready()
|
||||
|
||||
if model_name is None:
|
||||
app_label, model_name = app_label.split('.')
|
||||
app_label, model_name = app_label.split(".")
|
||||
|
||||
app_config = self.get_app_config(app_label)
|
||||
|
||||
|
@ -217,17 +219,22 @@ class Apps:
|
|||
model_name = model._meta.model_name
|
||||
app_models = self.all_models[app_label]
|
||||
if model_name in app_models:
|
||||
if (model.__name__ == app_models[model_name].__name__ and
|
||||
model.__module__ == app_models[model_name].__module__):
|
||||
if (
|
||||
model.__name__ == app_models[model_name].__name__
|
||||
and model.__module__ == app_models[model_name].__module__
|
||||
):
|
||||
warnings.warn(
|
||||
"Model '%s.%s' was already registered. "
|
||||
"Reloading models is not advised as it can lead to inconsistencies, "
|
||||
"most notably with related models." % (app_label, model_name),
|
||||
RuntimeWarning, stacklevel=2)
|
||||
RuntimeWarning,
|
||||
stacklevel=2,
|
||||
)
|
||||
else:
|
||||
raise RuntimeError(
|
||||
"Conflicting '%s' models in application '%s': %s and %s." %
|
||||
(model_name, app_label, app_models[model_name], model))
|
||||
"Conflicting '%s' models in application '%s': %s and %s."
|
||||
% (model_name, app_label, app_models[model_name], model)
|
||||
)
|
||||
app_models[model_name] = model
|
||||
self.do_pending_operations(model)
|
||||
self.clear_cache()
|
||||
|
@ -254,8 +261,8 @@ class Apps:
|
|||
candidates = []
|
||||
for app_config in self.app_configs.values():
|
||||
if object_name.startswith(app_config.name):
|
||||
subpath = object_name[len(app_config.name):]
|
||||
if subpath == '' or subpath[0] == '.':
|
||||
subpath = object_name[len(app_config.name) :]
|
||||
if subpath == "" or subpath[0] == ".":
|
||||
candidates.append(app_config)
|
||||
if candidates:
|
||||
return sorted(candidates, key=lambda ac: -len(ac.name))[0]
|
||||
|
@ -270,8 +277,7 @@ class Apps:
|
|||
"""
|
||||
model = self.all_models[app_label].get(model_name.lower())
|
||||
if model is None:
|
||||
raise LookupError(
|
||||
"Model '%s.%s' not registered." % (app_label, model_name))
|
||||
raise LookupError("Model '%s.%s' not registered." % (app_label, model_name))
|
||||
return model
|
||||
|
||||
@functools.lru_cache(maxsize=None)
|
||||
|
@ -403,6 +409,7 @@ class Apps:
|
|||
def apply_next_model(model):
|
||||
next_function = partial(apply_next_model.func, model)
|
||||
self.lazy_model_operation(next_function, *more_models)
|
||||
|
||||
apply_next_model.func = function
|
||||
|
||||
# If the model has already been imported and registered, partially
|
||||
|
|
|
@ -23,20 +23,20 @@ ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
|
|||
|
||||
# RemovedInDjango50Warning
|
||||
USE_DEPRECATED_PYTZ_DEPRECATED_MSG = (
|
||||
'The USE_DEPRECATED_PYTZ setting, and support for pytz timezones is '
|
||||
'deprecated in favor of the stdlib zoneinfo module. Please update your '
|
||||
'code to use zoneinfo and remove the USE_DEPRECATED_PYTZ setting.'
|
||||
"The USE_DEPRECATED_PYTZ setting, and support for pytz timezones is "
|
||||
"deprecated in favor of the stdlib zoneinfo module. Please update your "
|
||||
"code to use zoneinfo and remove the USE_DEPRECATED_PYTZ setting."
|
||||
)
|
||||
|
||||
USE_L10N_DEPRECATED_MSG = (
|
||||
'The USE_L10N setting is deprecated. Starting with Django 5.0, localized '
|
||||
'formatting of data will always be enabled. For example Django will '
|
||||
'display numbers and dates using the format of the current locale.'
|
||||
"The USE_L10N setting is deprecated. Starting with Django 5.0, localized "
|
||||
"formatting of data will always be enabled. For example Django will "
|
||||
"display numbers and dates using the format of the current locale."
|
||||
)
|
||||
|
||||
CSRF_COOKIE_MASKED_DEPRECATED_MSG = (
|
||||
'The CSRF_COOKIE_MASKED transitional setting is deprecated. Support for '
|
||||
'it will be removed in Django 5.0.'
|
||||
"The CSRF_COOKIE_MASKED transitional setting is deprecated. Support for "
|
||||
"it will be removed in Django 5.0."
|
||||
)
|
||||
|
||||
|
||||
|
@ -45,6 +45,7 @@ class SettingsReference(str):
|
|||
String subclass which references a current settings value. It's treated as
|
||||
the value in memory but serializes to a settings.NAME attribute reference.
|
||||
"""
|
||||
|
||||
def __new__(self, value, setting_name):
|
||||
return str.__new__(self, value)
|
||||
|
||||
|
@ -58,6 +59,7 @@ class LazySettings(LazyObject):
|
|||
The user can manually configure settings prior to using them. Otherwise,
|
||||
Django uses the settings module pointed to by DJANGO_SETTINGS_MODULE.
|
||||
"""
|
||||
|
||||
def _setup(self, name=None):
|
||||
"""
|
||||
Load the settings module pointed to by the environment variable. This
|
||||
|
@ -71,16 +73,17 @@ class LazySettings(LazyObject):
|
|||
"Requested %s, but settings are not configured. "
|
||||
"You must either define the environment variable %s "
|
||||
"or call settings.configure() before accessing settings."
|
||||
% (desc, ENVIRONMENT_VARIABLE))
|
||||
% (desc, ENVIRONMENT_VARIABLE)
|
||||
)
|
||||
|
||||
self._wrapped = Settings(settings_module)
|
||||
|
||||
def __repr__(self):
|
||||
# Hardcode the class name as otherwise it yields 'Settings'.
|
||||
if self._wrapped is empty:
|
||||
return '<LazySettings [Unevaluated]>'
|
||||
return "<LazySettings [Unevaluated]>"
|
||||
return '<LazySettings "%(settings_module)s">' % {
|
||||
'settings_module': self._wrapped.SETTINGS_MODULE,
|
||||
"settings_module": self._wrapped.SETTINGS_MODULE,
|
||||
}
|
||||
|
||||
def __getattr__(self, name):
|
||||
|
@ -91,9 +94,9 @@ class LazySettings(LazyObject):
|
|||
|
||||
# Special case some settings which require further modification.
|
||||
# This is done here for performance reasons so the modified value is cached.
|
||||
if name in {'MEDIA_URL', 'STATIC_URL'} and val is not None:
|
||||
if name in {"MEDIA_URL", "STATIC_URL"} and val is not None:
|
||||
val = self._add_script_prefix(val)
|
||||
elif name == 'SECRET_KEY' and not val:
|
||||
elif name == "SECRET_KEY" and not val:
|
||||
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
|
||||
|
||||
self.__dict__[name] = val
|
||||
|
@ -104,7 +107,7 @@ class LazySettings(LazyObject):
|
|||
Set the value of setting. Clear all cached values if _wrapped changes
|
||||
(@override_settings does this) or clear single values when set.
|
||||
"""
|
||||
if name == '_wrapped':
|
||||
if name == "_wrapped":
|
||||
self.__dict__.clear()
|
||||
else:
|
||||
self.__dict__.pop(name, None)
|
||||
|
@ -122,11 +125,11 @@ class LazySettings(LazyObject):
|
|||
argument must support attribute access (__getattr__)).
|
||||
"""
|
||||
if self._wrapped is not empty:
|
||||
raise RuntimeError('Settings already configured.')
|
||||
raise RuntimeError("Settings already configured.")
|
||||
holder = UserSettingsHolder(default_settings)
|
||||
for name, value in options.items():
|
||||
if not name.isupper():
|
||||
raise TypeError('Setting %r must be uppercase.' % name)
|
||||
raise TypeError("Setting %r must be uppercase." % name)
|
||||
setattr(holder, name, value)
|
||||
self._wrapped = holder
|
||||
|
||||
|
@ -139,10 +142,11 @@ class LazySettings(LazyObject):
|
|||
subpath to STATIC_URL and MEDIA_URL in settings is inconvenient.
|
||||
"""
|
||||
# Don't apply prefix to absolute paths and URLs.
|
||||
if value.startswith(('http://', 'https://', '/')):
|
||||
if value.startswith(("http://", "https://", "/")):
|
||||
return value
|
||||
from django.urls import get_script_prefix
|
||||
return '%s%s' % (get_script_prefix(), value)
|
||||
|
||||
return "%s%s" % (get_script_prefix(), value)
|
||||
|
||||
@property
|
||||
def configured(self):
|
||||
|
@ -161,14 +165,14 @@ class LazySettings(LazyObject):
|
|||
RemovedInDjango50Warning,
|
||||
stacklevel=2,
|
||||
)
|
||||
return self.__getattr__('USE_L10N')
|
||||
return self.__getattr__("USE_L10N")
|
||||
|
||||
# RemovedInDjango50Warning.
|
||||
@property
|
||||
def _USE_L10N_INTERNAL(self):
|
||||
# Special hook to avoid checking a traceback in internal use on hot
|
||||
# paths.
|
||||
return self.__getattr__('USE_L10N')
|
||||
return self.__getattr__("USE_L10N")
|
||||
|
||||
|
||||
class Settings:
|
||||
|
@ -184,7 +188,7 @@ class Settings:
|
|||
mod = importlib.import_module(self.SETTINGS_MODULE)
|
||||
|
||||
tuple_settings = (
|
||||
'ALLOWED_HOSTS',
|
||||
"ALLOWED_HOSTS",
|
||||
"INSTALLED_APPS",
|
||||
"TEMPLATE_DIRS",
|
||||
"LOCALE_PATHS",
|
||||
|
@ -195,39 +199,42 @@ class Settings:
|
|||
if setting.isupper():
|
||||
setting_value = getattr(mod, setting)
|
||||
|
||||
if (setting in tuple_settings and
|
||||
not isinstance(setting_value, (list, tuple))):
|
||||
raise ImproperlyConfigured("The %s setting must be a list or a tuple." % setting)
|
||||
if setting in tuple_settings and not isinstance(
|
||||
setting_value, (list, tuple)
|
||||
):
|
||||
raise ImproperlyConfigured(
|
||||
"The %s setting must be a list or a tuple." % setting
|
||||
)
|
||||
setattr(self, setting, setting_value)
|
||||
self._explicit_settings.add(setting)
|
||||
|
||||
if self.USE_TZ is False and not self.is_overridden('USE_TZ'):
|
||||
if self.USE_TZ is False and not self.is_overridden("USE_TZ"):
|
||||
warnings.warn(
|
||||
'The default value of USE_TZ will change from False to True '
|
||||
'in Django 5.0. Set USE_TZ to False in your project settings '
|
||||
'if you want to keep the current default behavior.',
|
||||
"The default value of USE_TZ will change from False to True "
|
||||
"in Django 5.0. Set USE_TZ to False in your project settings "
|
||||
"if you want to keep the current default behavior.",
|
||||
category=RemovedInDjango50Warning,
|
||||
)
|
||||
|
||||
if self.is_overridden('USE_DEPRECATED_PYTZ'):
|
||||
if self.is_overridden("USE_DEPRECATED_PYTZ"):
|
||||
warnings.warn(USE_DEPRECATED_PYTZ_DEPRECATED_MSG, RemovedInDjango50Warning)
|
||||
|
||||
if self.is_overridden('CSRF_COOKIE_MASKED'):
|
||||
if self.is_overridden("CSRF_COOKIE_MASKED"):
|
||||
warnings.warn(CSRF_COOKIE_MASKED_DEPRECATED_MSG, RemovedInDjango50Warning)
|
||||
|
||||
if hasattr(time, 'tzset') and self.TIME_ZONE:
|
||||
if hasattr(time, "tzset") and self.TIME_ZONE:
|
||||
# When we can, attempt to validate the timezone. If we can't find
|
||||
# this file, no check happens and it's harmless.
|
||||
zoneinfo_root = Path('/usr/share/zoneinfo')
|
||||
zone_info_file = zoneinfo_root.joinpath(*self.TIME_ZONE.split('/'))
|
||||
zoneinfo_root = Path("/usr/share/zoneinfo")
|
||||
zone_info_file = zoneinfo_root.joinpath(*self.TIME_ZONE.split("/"))
|
||||
if zoneinfo_root.exists() and not zone_info_file.exists():
|
||||
raise ValueError("Incorrect timezone setting: %s" % self.TIME_ZONE)
|
||||
# Move the time zone info into os.environ. See ticket #2315 for why
|
||||
# we don't do this unconditionally (breaks Windows).
|
||||
os.environ['TZ'] = self.TIME_ZONE
|
||||
os.environ["TZ"] = self.TIME_ZONE
|
||||
time.tzset()
|
||||
|
||||
if self.is_overridden('USE_L10N'):
|
||||
if self.is_overridden("USE_L10N"):
|
||||
warnings.warn(USE_L10N_DEPRECATED_MSG, RemovedInDjango50Warning)
|
||||
|
||||
def is_overridden(self, setting):
|
||||
|
@ -235,13 +242,14 @@ class Settings:
|
|||
|
||||
def __repr__(self):
|
||||
return '<%(cls)s "%(settings_module)s">' % {
|
||||
'cls': self.__class__.__name__,
|
||||
'settings_module': self.SETTINGS_MODULE,
|
||||
"cls": self.__class__.__name__,
|
||||
"settings_module": self.SETTINGS_MODULE,
|
||||
}
|
||||
|
||||
|
||||
class UserSettingsHolder:
|
||||
"""Holder for user configured settings."""
|
||||
|
||||
# SETTINGS_MODULE doesn't make much sense in the manually configured
|
||||
# (standalone) case.
|
||||
SETTINGS_MODULE = None
|
||||
|
@ -251,7 +259,7 @@ class UserSettingsHolder:
|
|||
Requests for configuration variables not in this class are satisfied
|
||||
from the module specified in default_settings (if possible).
|
||||
"""
|
||||
self.__dict__['_deleted'] = set()
|
||||
self.__dict__["_deleted"] = set()
|
||||
self.default_settings = default_settings
|
||||
|
||||
def __getattr__(self, name):
|
||||
|
@ -261,12 +269,12 @@ class UserSettingsHolder:
|
|||
|
||||
def __setattr__(self, name, value):
|
||||
self._deleted.discard(name)
|
||||
if name == 'USE_L10N':
|
||||
if name == "USE_L10N":
|
||||
warnings.warn(USE_L10N_DEPRECATED_MSG, RemovedInDjango50Warning)
|
||||
if name == 'CSRF_COOKIE_MASKED':
|
||||
if name == "CSRF_COOKIE_MASKED":
|
||||
warnings.warn(CSRF_COOKIE_MASKED_DEPRECATED_MSG, RemovedInDjango50Warning)
|
||||
super().__setattr__(name, value)
|
||||
if name == 'USE_DEPRECATED_PYTZ':
|
||||
if name == "USE_DEPRECATED_PYTZ":
|
||||
warnings.warn(USE_DEPRECATED_PYTZ_DEPRECATED_MSG, RemovedInDjango50Warning)
|
||||
|
||||
def __delattr__(self, name):
|
||||
|
@ -276,19 +284,22 @@ class UserSettingsHolder:
|
|||
|
||||
def __dir__(self):
|
||||
return sorted(
|
||||
s for s in [*self.__dict__, *dir(self.default_settings)]
|
||||
s
|
||||
for s in [*self.__dict__, *dir(self.default_settings)]
|
||||
if s not in self._deleted
|
||||
)
|
||||
|
||||
def is_overridden(self, setting):
|
||||
deleted = (setting in self._deleted)
|
||||
set_locally = (setting in self.__dict__)
|
||||
set_on_default = getattr(self.default_settings, 'is_overridden', lambda s: False)(setting)
|
||||
deleted = setting in self._deleted
|
||||
set_locally = setting in self.__dict__
|
||||
set_on_default = getattr(
|
||||
self.default_settings, "is_overridden", lambda s: False
|
||||
)(setting)
|
||||
return deleted or set_locally or set_on_default
|
||||
|
||||
def __repr__(self):
|
||||
return '<%(cls)s>' % {
|
||||
'cls': self.__class__.__name__,
|
||||
return "<%(cls)s>" % {
|
||||
"cls": self.__class__.__name__,
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ ALLOWED_HOSTS = []
|
|||
# https://en.wikipedia.org/wiki/List_of_tz_zones_by_name (although not all
|
||||
# systems may support all possibilities). When USE_TZ is True, this is
|
||||
# interpreted as the default user time zone.
|
||||
TIME_ZONE = 'America/Chicago'
|
||||
TIME_ZONE = "America/Chicago"
|
||||
|
||||
# If you set this to True, Django will use timezone-aware datetimes.
|
||||
USE_TZ = False
|
||||
|
@ -50,107 +50,107 @@ USE_DEPRECATED_PYTZ = False
|
|||
|
||||
# Language code for this installation. All choices can be found here:
|
||||
# http://www.i18nguy.com/unicode/language-identifiers.html
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
LANGUAGE_CODE = "en-us"
|
||||
|
||||
# Languages we provide translations for, out of the box.
|
||||
LANGUAGES = [
|
||||
('af', gettext_noop('Afrikaans')),
|
||||
('ar', gettext_noop('Arabic')),
|
||||
('ar-dz', gettext_noop('Algerian Arabic')),
|
||||
('ast', gettext_noop('Asturian')),
|
||||
('az', gettext_noop('Azerbaijani')),
|
||||
('bg', gettext_noop('Bulgarian')),
|
||||
('be', gettext_noop('Belarusian')),
|
||||
('bn', gettext_noop('Bengali')),
|
||||
('br', gettext_noop('Breton')),
|
||||
('bs', gettext_noop('Bosnian')),
|
||||
('ca', gettext_noop('Catalan')),
|
||||
('cs', gettext_noop('Czech')),
|
||||
('cy', gettext_noop('Welsh')),
|
||||
('da', gettext_noop('Danish')),
|
||||
('de', gettext_noop('German')),
|
||||
('dsb', gettext_noop('Lower Sorbian')),
|
||||
('el', gettext_noop('Greek')),
|
||||
('en', gettext_noop('English')),
|
||||
('en-au', gettext_noop('Australian English')),
|
||||
('en-gb', gettext_noop('British English')),
|
||||
('eo', gettext_noop('Esperanto')),
|
||||
('es', gettext_noop('Spanish')),
|
||||
('es-ar', gettext_noop('Argentinian Spanish')),
|
||||
('es-co', gettext_noop('Colombian Spanish')),
|
||||
('es-mx', gettext_noop('Mexican Spanish')),
|
||||
('es-ni', gettext_noop('Nicaraguan Spanish')),
|
||||
('es-ve', gettext_noop('Venezuelan Spanish')),
|
||||
('et', gettext_noop('Estonian')),
|
||||
('eu', gettext_noop('Basque')),
|
||||
('fa', gettext_noop('Persian')),
|
||||
('fi', gettext_noop('Finnish')),
|
||||
('fr', gettext_noop('French')),
|
||||
('fy', gettext_noop('Frisian')),
|
||||
('ga', gettext_noop('Irish')),
|
||||
('gd', gettext_noop('Scottish Gaelic')),
|
||||
('gl', gettext_noop('Galician')),
|
||||
('he', gettext_noop('Hebrew')),
|
||||
('hi', gettext_noop('Hindi')),
|
||||
('hr', gettext_noop('Croatian')),
|
||||
('hsb', gettext_noop('Upper Sorbian')),
|
||||
('hu', gettext_noop('Hungarian')),
|
||||
('hy', gettext_noop('Armenian')),
|
||||
('ia', gettext_noop('Interlingua')),
|
||||
('id', gettext_noop('Indonesian')),
|
||||
('ig', gettext_noop('Igbo')),
|
||||
('io', gettext_noop('Ido')),
|
||||
('is', gettext_noop('Icelandic')),
|
||||
('it', gettext_noop('Italian')),
|
||||
('ja', gettext_noop('Japanese')),
|
||||
('ka', gettext_noop('Georgian')),
|
||||
('kab', gettext_noop('Kabyle')),
|
||||
('kk', gettext_noop('Kazakh')),
|
||||
('km', gettext_noop('Khmer')),
|
||||
('kn', gettext_noop('Kannada')),
|
||||
('ko', gettext_noop('Korean')),
|
||||
('ky', gettext_noop('Kyrgyz')),
|
||||
('lb', gettext_noop('Luxembourgish')),
|
||||
('lt', gettext_noop('Lithuanian')),
|
||||
('lv', gettext_noop('Latvian')),
|
||||
('mk', gettext_noop('Macedonian')),
|
||||
('ml', gettext_noop('Malayalam')),
|
||||
('mn', gettext_noop('Mongolian')),
|
||||
('mr', gettext_noop('Marathi')),
|
||||
('ms', gettext_noop('Malay')),
|
||||
('my', gettext_noop('Burmese')),
|
||||
('nb', gettext_noop('Norwegian Bokmål')),
|
||||
('ne', gettext_noop('Nepali')),
|
||||
('nl', gettext_noop('Dutch')),
|
||||
('nn', gettext_noop('Norwegian Nynorsk')),
|
||||
('os', gettext_noop('Ossetic')),
|
||||
('pa', gettext_noop('Punjabi')),
|
||||
('pl', gettext_noop('Polish')),
|
||||
('pt', gettext_noop('Portuguese')),
|
||||
('pt-br', gettext_noop('Brazilian Portuguese')),
|
||||
('ro', gettext_noop('Romanian')),
|
||||
('ru', gettext_noop('Russian')),
|
||||
('sk', gettext_noop('Slovak')),
|
||||
('sl', gettext_noop('Slovenian')),
|
||||
('sq', gettext_noop('Albanian')),
|
||||
('sr', gettext_noop('Serbian')),
|
||||
('sr-latn', gettext_noop('Serbian Latin')),
|
||||
('sv', gettext_noop('Swedish')),
|
||||
('sw', gettext_noop('Swahili')),
|
||||
('ta', gettext_noop('Tamil')),
|
||||
('te', gettext_noop('Telugu')),
|
||||
('tg', gettext_noop('Tajik')),
|
||||
('th', gettext_noop('Thai')),
|
||||
('tk', gettext_noop('Turkmen')),
|
||||
('tr', gettext_noop('Turkish')),
|
||||
('tt', gettext_noop('Tatar')),
|
||||
('udm', gettext_noop('Udmurt')),
|
||||
('uk', gettext_noop('Ukrainian')),
|
||||
('ur', gettext_noop('Urdu')),
|
||||
('uz', gettext_noop('Uzbek')),
|
||||
('vi', gettext_noop('Vietnamese')),
|
||||
('zh-hans', gettext_noop('Simplified Chinese')),
|
||||
('zh-hant', gettext_noop('Traditional Chinese')),
|
||||
("af", gettext_noop("Afrikaans")),
|
||||
("ar", gettext_noop("Arabic")),
|
||||
("ar-dz", gettext_noop("Algerian Arabic")),
|
||||
("ast", gettext_noop("Asturian")),
|
||||
("az", gettext_noop("Azerbaijani")),
|
||||
("bg", gettext_noop("Bulgarian")),
|
||||
("be", gettext_noop("Belarusian")),
|
||||
("bn", gettext_noop("Bengali")),
|
||||
("br", gettext_noop("Breton")),
|
||||
("bs", gettext_noop("Bosnian")),
|
||||
("ca", gettext_noop("Catalan")),
|
||||
("cs", gettext_noop("Czech")),
|
||||
("cy", gettext_noop("Welsh")),
|
||||
("da", gettext_noop("Danish")),
|
||||
("de", gettext_noop("German")),
|
||||
("dsb", gettext_noop("Lower Sorbian")),
|
||||
("el", gettext_noop("Greek")),
|
||||
("en", gettext_noop("English")),
|
||||
("en-au", gettext_noop("Australian English")),
|
||||
("en-gb", gettext_noop("British English")),
|
||||
("eo", gettext_noop("Esperanto")),
|
||||
("es", gettext_noop("Spanish")),
|
||||
("es-ar", gettext_noop("Argentinian Spanish")),
|
||||
("es-co", gettext_noop("Colombian Spanish")),
|
||||
("es-mx", gettext_noop("Mexican Spanish")),
|
||||
("es-ni", gettext_noop("Nicaraguan Spanish")),
|
||||
("es-ve", gettext_noop("Venezuelan Spanish")),
|
||||
("et", gettext_noop("Estonian")),
|
||||
("eu", gettext_noop("Basque")),
|
||||
("fa", gettext_noop("Persian")),
|
||||
("fi", gettext_noop("Finnish")),
|
||||
("fr", gettext_noop("French")),
|
||||
("fy", gettext_noop("Frisian")),
|
||||
("ga", gettext_noop("Irish")),
|
||||
("gd", gettext_noop("Scottish Gaelic")),
|
||||
("gl", gettext_noop("Galician")),
|
||||
("he", gettext_noop("Hebrew")),
|
||||
("hi", gettext_noop("Hindi")),
|
||||
("hr", gettext_noop("Croatian")),
|
||||
("hsb", gettext_noop("Upper Sorbian")),
|
||||
("hu", gettext_noop("Hungarian")),
|
||||
("hy", gettext_noop("Armenian")),
|
||||
("ia", gettext_noop("Interlingua")),
|
||||
("id", gettext_noop("Indonesian")),
|
||||
("ig", gettext_noop("Igbo")),
|
||||
("io", gettext_noop("Ido")),
|
||||
("is", gettext_noop("Icelandic")),
|
||||
("it", gettext_noop("Italian")),
|
||||
("ja", gettext_noop("Japanese")),
|
||||
("ka", gettext_noop("Georgian")),
|
||||
("kab", gettext_noop("Kabyle")),
|
||||
("kk", gettext_noop("Kazakh")),
|
||||
("km", gettext_noop("Khmer")),
|
||||
("kn", gettext_noop("Kannada")),
|
||||
("ko", gettext_noop("Korean")),
|
||||
("ky", gettext_noop("Kyrgyz")),
|
||||
("lb", gettext_noop("Luxembourgish")),
|
||||
("lt", gettext_noop("Lithuanian")),
|
||||
("lv", gettext_noop("Latvian")),
|
||||
("mk", gettext_noop("Macedonian")),
|
||||
("ml", gettext_noop("Malayalam")),
|
||||
("mn", gettext_noop("Mongolian")),
|
||||
("mr", gettext_noop("Marathi")),
|
||||
("ms", gettext_noop("Malay")),
|
||||
("my", gettext_noop("Burmese")),
|
||||
("nb", gettext_noop("Norwegian Bokmål")),
|
||||
("ne", gettext_noop("Nepali")),
|
||||
("nl", gettext_noop("Dutch")),
|
||||
("nn", gettext_noop("Norwegian Nynorsk")),
|
||||
("os", gettext_noop("Ossetic")),
|
||||
("pa", gettext_noop("Punjabi")),
|
||||
("pl", gettext_noop("Polish")),
|
||||
("pt", gettext_noop("Portuguese")),
|
||||
("pt-br", gettext_noop("Brazilian Portuguese")),
|
||||
("ro", gettext_noop("Romanian")),
|
||||
("ru", gettext_noop("Russian")),
|
||||
("sk", gettext_noop("Slovak")),
|
||||
("sl", gettext_noop("Slovenian")),
|
||||
("sq", gettext_noop("Albanian")),
|
||||
("sr", gettext_noop("Serbian")),
|
||||
("sr-latn", gettext_noop("Serbian Latin")),
|
||||
("sv", gettext_noop("Swedish")),
|
||||
("sw", gettext_noop("Swahili")),
|
||||
("ta", gettext_noop("Tamil")),
|
||||
("te", gettext_noop("Telugu")),
|
||||
("tg", gettext_noop("Tajik")),
|
||||
("th", gettext_noop("Thai")),
|
||||
("tk", gettext_noop("Turkmen")),
|
||||
("tr", gettext_noop("Turkish")),
|
||||
("tt", gettext_noop("Tatar")),
|
||||
("udm", gettext_noop("Udmurt")),
|
||||
("uk", gettext_noop("Ukrainian")),
|
||||
("ur", gettext_noop("Urdu")),
|
||||
("uz", gettext_noop("Uzbek")),
|
||||
("vi", gettext_noop("Vietnamese")),
|
||||
("zh-hans", gettext_noop("Simplified Chinese")),
|
||||
("zh-hant", gettext_noop("Traditional Chinese")),
|
||||
]
|
||||
|
||||
# Languages using BiDi (right-to-left) layout
|
||||
|
@ -162,10 +162,10 @@ USE_I18N = True
|
|||
LOCALE_PATHS = []
|
||||
|
||||
# Settings for language cookie
|
||||
LANGUAGE_COOKIE_NAME = 'django_language'
|
||||
LANGUAGE_COOKIE_NAME = "django_language"
|
||||
LANGUAGE_COOKIE_AGE = None
|
||||
LANGUAGE_COOKIE_DOMAIN = None
|
||||
LANGUAGE_COOKIE_PATH = '/'
|
||||
LANGUAGE_COOKIE_PATH = "/"
|
||||
LANGUAGE_COOKIE_SECURE = False
|
||||
LANGUAGE_COOKIE_HTTPONLY = False
|
||||
LANGUAGE_COOKIE_SAMESITE = None
|
||||
|
@ -181,10 +181,10 @@ MANAGERS = ADMINS
|
|||
|
||||
# Default charset to use for all HttpResponse objects, if a MIME type isn't
|
||||
# manually specified. It's used to construct the Content-Type header.
|
||||
DEFAULT_CHARSET = 'utf-8'
|
||||
DEFAULT_CHARSET = "utf-8"
|
||||
|
||||
# Email address that error messages come from.
|
||||
SERVER_EMAIL = 'root@localhost'
|
||||
SERVER_EMAIL = "root@localhost"
|
||||
|
||||
# Database connection info. If left empty, will default to the dummy backend.
|
||||
DATABASES = {}
|
||||
|
@ -196,10 +196,10 @@ DATABASE_ROUTERS = []
|
|||
# The default is to use the SMTP backend.
|
||||
# Third-party backends can be specified by providing a Python path
|
||||
# to a module that defines an EmailBackend class.
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
||||
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
|
||||
|
||||
# Host for sending email.
|
||||
EMAIL_HOST = 'localhost'
|
||||
EMAIL_HOST = "localhost"
|
||||
|
||||
# Port for sending email.
|
||||
EMAIL_PORT = 25
|
||||
|
@ -208,8 +208,8 @@ EMAIL_PORT = 25
|
|||
EMAIL_USE_LOCALTIME = False
|
||||
|
||||
# Optional SMTP authentication information for EMAIL_HOST.
|
||||
EMAIL_HOST_USER = ''
|
||||
EMAIL_HOST_PASSWORD = ''
|
||||
EMAIL_HOST_USER = ""
|
||||
EMAIL_HOST_PASSWORD = ""
|
||||
EMAIL_USE_TLS = False
|
||||
EMAIL_USE_SSL = False
|
||||
EMAIL_SSL_CERTFILE = None
|
||||
|
@ -222,15 +222,15 @@ INSTALLED_APPS = []
|
|||
TEMPLATES = []
|
||||
|
||||
# Default form rendering class.
|
||||
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
|
||||
FORM_RENDERER = "django.forms.renderers.DjangoTemplates"
|
||||
|
||||
# Default email address to use for various automated correspondence from
|
||||
# the site managers.
|
||||
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
|
||||
DEFAULT_FROM_EMAIL = "webmaster@localhost"
|
||||
|
||||
# Subject-line prefix for email messages send with django.core.mail.mail_admins
|
||||
# or ...mail_managers. Make sure to include the trailing space.
|
||||
EMAIL_SUBJECT_PREFIX = '[Django] '
|
||||
EMAIL_SUBJECT_PREFIX = "[Django] "
|
||||
|
||||
# Whether to append trailing slashes to URLs.
|
||||
APPEND_SLASH = True
|
||||
|
@ -270,22 +270,22 @@ IGNORABLE_404_URLS = []
|
|||
# A secret key for this particular Django installation. Used in secret-key
|
||||
# hashing algorithms. Set this in your settings, or Django will complain
|
||||
# loudly.
|
||||
SECRET_KEY = ''
|
||||
SECRET_KEY = ""
|
||||
|
||||
# List of secret keys used to verify the validity of signatures. This allows
|
||||
# secret key rotation.
|
||||
SECRET_KEY_FALLBACKS = []
|
||||
|
||||
# Default file storage mechanism that holds media.
|
||||
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
|
||||
DEFAULT_FILE_STORAGE = "django.core.files.storage.FileSystemStorage"
|
||||
|
||||
# Absolute filesystem path to the directory that will hold user-uploaded files.
|
||||
# Example: "/var/www/example.com/media/"
|
||||
MEDIA_ROOT = ''
|
||||
MEDIA_ROOT = ""
|
||||
|
||||
# URL that handles the media served from MEDIA_ROOT.
|
||||
# Examples: "http://example.com/media/", "http://media.example.com/"
|
||||
MEDIA_URL = ''
|
||||
MEDIA_URL = ""
|
||||
|
||||
# Absolute path to the directory static files should be collected to.
|
||||
# Example: "/var/www/example.com/static/"
|
||||
|
@ -297,8 +297,8 @@ STATIC_URL = None
|
|||
|
||||
# List of upload handler classes to be applied in order.
|
||||
FILE_UPLOAD_HANDLERS = [
|
||||
'django.core.files.uploadhandler.MemoryFileUploadHandler',
|
||||
'django.core.files.uploadhandler.TemporaryFileUploadHandler',
|
||||
"django.core.files.uploadhandler.MemoryFileUploadHandler",
|
||||
"django.core.files.uploadhandler.TemporaryFileUploadHandler",
|
||||
]
|
||||
|
||||
# Maximum size, in bytes, of a request before it will be streamed to the
|
||||
|
@ -335,51 +335,51 @@ FORMAT_MODULE_PATH = None
|
|||
|
||||
# Default formatting for date objects. See all available format strings here:
|
||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'N j, Y'
|
||||
DATE_FORMAT = "N j, Y"
|
||||
|
||||
# Default formatting for datetime objects. See all available format strings here:
|
||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATETIME_FORMAT = 'N j, Y, P'
|
||||
DATETIME_FORMAT = "N j, Y, P"
|
||||
|
||||
# Default formatting for time objects. See all available format strings here:
|
||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
TIME_FORMAT = 'P'
|
||||
TIME_FORMAT = "P"
|
||||
|
||||
# Default formatting for date objects when only the year and month are relevant.
|
||||
# See all available format strings here:
|
||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
|
||||
# Default formatting for date objects when only the month and day are relevant.
|
||||
# See all available format strings here:
|
||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
MONTH_DAY_FORMAT = 'F j'
|
||||
MONTH_DAY_FORMAT = "F j"
|
||||
|
||||
# Default short formatting for date objects. See all available format strings here:
|
||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
SHORT_DATE_FORMAT = 'm/d/Y'
|
||||
SHORT_DATE_FORMAT = "m/d/Y"
|
||||
|
||||
# Default short formatting for datetime objects.
|
||||
# See all available format strings here:
|
||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
SHORT_DATETIME_FORMAT = 'm/d/Y P'
|
||||
SHORT_DATETIME_FORMAT = "m/d/Y P"
|
||||
|
||||
# Default formats to be used when parsing dates from input boxes, in order
|
||||
# See all available format string here:
|
||||
# https://docs.python.org/library/datetime.html#strftime-behavior
|
||||
# * Note that these format strings are different from the ones to display dates
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%m/%d/%Y', # '10/25/2006'
|
||||
'%m/%d/%y', # '10/25/06'
|
||||
'%b %d %Y', # 'Oct 25 2006'
|
||||
'%b %d, %Y', # 'Oct 25, 2006'
|
||||
'%d %b %Y', # '25 Oct 2006'
|
||||
'%d %b, %Y', # '25 Oct, 2006'
|
||||
'%B %d %Y', # 'October 25 2006'
|
||||
'%B %d, %Y', # 'October 25, 2006'
|
||||
'%d %B %Y', # '25 October 2006'
|
||||
'%d %B, %Y', # '25 October, 2006'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%m/%d/%Y", # '10/25/2006'
|
||||
"%m/%d/%y", # '10/25/06'
|
||||
"%b %d %Y", # 'Oct 25 2006'
|
||||
"%b %d, %Y", # 'Oct 25, 2006'
|
||||
"%d %b %Y", # '25 Oct 2006'
|
||||
"%d %b, %Y", # '25 Oct, 2006'
|
||||
"%B %d %Y", # 'October 25 2006'
|
||||
"%B %d, %Y", # 'October 25, 2006'
|
||||
"%d %B %Y", # '25 October 2006'
|
||||
"%d %B, %Y", # '25 October, 2006'
|
||||
]
|
||||
|
||||
# Default formats to be used when parsing times from input boxes, in order
|
||||
|
@ -387,9 +387,9 @@ DATE_INPUT_FORMATS = [
|
|||
# https://docs.python.org/library/datetime.html#strftime-behavior
|
||||
# * Note that these format strings are different from the ones to display dates
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
'%H:%M:%S.%f', # '14:30:59.000200'
|
||||
'%H:%M', # '14:30'
|
||||
"%H:%M:%S", # '14:30:59'
|
||||
"%H:%M:%S.%f", # '14:30:59.000200'
|
||||
"%H:%M", # '14:30'
|
||||
]
|
||||
|
||||
# Default formats to be used when parsing dates and times from input boxes,
|
||||
|
@ -398,15 +398,15 @@ TIME_INPUT_FORMATS = [
|
|||
# https://docs.python.org/library/datetime.html#strftime-behavior
|
||||
# * Note that these format strings are different from the ones to display dates
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
|
||||
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
|
||||
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
|
||||
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
|
||||
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
|
||||
'%m/%d/%y %H:%M', # '10/25/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59'
|
||||
"%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200'
|
||||
"%m/%d/%Y %H:%M", # '10/25/2006 14:30'
|
||||
"%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59'
|
||||
"%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200'
|
||||
"%m/%d/%y %H:%M", # '10/25/06 14:30'
|
||||
]
|
||||
|
||||
# First day of week, to be used on calendars
|
||||
|
@ -414,7 +414,7 @@ DATETIME_INPUT_FORMATS = [
|
|||
FIRST_DAY_OF_WEEK = 0
|
||||
|
||||
# Decimal separator symbol
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = "."
|
||||
|
||||
# Boolean that sets whether to add thousand separator when formatting numbers
|
||||
USE_THOUSAND_SEPARATOR = False
|
||||
|
@ -424,17 +424,17 @@ USE_THOUSAND_SEPARATOR = False
|
|||
NUMBER_GROUPING = 0
|
||||
|
||||
# Thousand separator symbol
|
||||
THOUSAND_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = ","
|
||||
|
||||
# The tablespaces to use for each model when not specified otherwise.
|
||||
DEFAULT_TABLESPACE = ''
|
||||
DEFAULT_INDEX_TABLESPACE = ''
|
||||
DEFAULT_TABLESPACE = ""
|
||||
DEFAULT_INDEX_TABLESPACE = ""
|
||||
|
||||
# Default primary key field type.
|
||||
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
|
||||
DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
|
||||
|
||||
# Default X-Frame-Options header value
|
||||
X_FRAME_OPTIONS = 'DENY'
|
||||
X_FRAME_OPTIONS = "DENY"
|
||||
|
||||
USE_X_FORWARDED_HOST = False
|
||||
USE_X_FORWARDED_PORT = False
|
||||
|
@ -469,9 +469,9 @@ MIDDLEWARE = []
|
|||
############
|
||||
|
||||
# Cache to store session data if using the cache session backend.
|
||||
SESSION_CACHE_ALIAS = 'default'
|
||||
SESSION_CACHE_ALIAS = "default"
|
||||
# Cookie name. This can be whatever you want.
|
||||
SESSION_COOKIE_NAME = 'sessionid'
|
||||
SESSION_COOKIE_NAME = "sessionid"
|
||||
# Age of cookie, in seconds (default: 2 weeks).
|
||||
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
|
||||
# A string like "example.com", or None for standard domain cookie.
|
||||
|
@ -479,23 +479,23 @@ SESSION_COOKIE_DOMAIN = None
|
|||
# Whether the session cookie should be secure (https:// only).
|
||||
SESSION_COOKIE_SECURE = False
|
||||
# The path of the session cookie.
|
||||
SESSION_COOKIE_PATH = '/'
|
||||
SESSION_COOKIE_PATH = "/"
|
||||
# Whether to use the HttpOnly flag.
|
||||
SESSION_COOKIE_HTTPONLY = True
|
||||
# Whether to set the flag restricting cookie leaks on cross-site requests.
|
||||
# This can be 'Lax', 'Strict', 'None', or False to disable the flag.
|
||||
SESSION_COOKIE_SAMESITE = 'Lax'
|
||||
SESSION_COOKIE_SAMESITE = "Lax"
|
||||
# Whether to save the session data on every request.
|
||||
SESSION_SAVE_EVERY_REQUEST = False
|
||||
# Whether a user's session cookie expires when the web browser is closed.
|
||||
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
|
||||
# The module to store session data
|
||||
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
|
||||
SESSION_ENGINE = "django.contrib.sessions.backends.db"
|
||||
# Directory to store session files if using the file session module. If None,
|
||||
# the backend will use a sensible default.
|
||||
SESSION_FILE_PATH = None
|
||||
# class to serialize session data
|
||||
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
|
||||
SESSION_SERIALIZER = "django.contrib.sessions.serializers.JSONSerializer"
|
||||
|
||||
#########
|
||||
# CACHE #
|
||||
|
@ -503,25 +503,25 @@ SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
|
|||
|
||||
# The cache backends to use.
|
||||
CACHES = {
|
||||
'default': {
|
||||
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
|
||||
"default": {
|
||||
"BACKEND": "django.core.cache.backends.locmem.LocMemCache",
|
||||
}
|
||||
}
|
||||
CACHE_MIDDLEWARE_KEY_PREFIX = ''
|
||||
CACHE_MIDDLEWARE_KEY_PREFIX = ""
|
||||
CACHE_MIDDLEWARE_SECONDS = 600
|
||||
CACHE_MIDDLEWARE_ALIAS = 'default'
|
||||
CACHE_MIDDLEWARE_ALIAS = "default"
|
||||
|
||||
##################
|
||||
# AUTHENTICATION #
|
||||
##################
|
||||
|
||||
AUTH_USER_MODEL = 'auth.User'
|
||||
AUTH_USER_MODEL = "auth.User"
|
||||
|
||||
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
|
||||
AUTHENTICATION_BACKENDS = ["django.contrib.auth.backends.ModelBackend"]
|
||||
|
||||
LOGIN_URL = '/accounts/login/'
|
||||
LOGIN_URL = "/accounts/login/"
|
||||
|
||||
LOGIN_REDIRECT_URL = '/accounts/profile/'
|
||||
LOGIN_REDIRECT_URL = "/accounts/profile/"
|
||||
|
||||
LOGOUT_REDIRECT_URL = None
|
||||
|
||||
|
@ -532,11 +532,11 @@ PASSWORD_RESET_TIMEOUT = 60 * 60 * 24 * 3
|
|||
# password using different algorithms will be converted automatically
|
||||
# upon login
|
||||
PASSWORD_HASHERS = [
|
||||
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
|
||||
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
|
||||
'django.contrib.auth.hashers.Argon2PasswordHasher',
|
||||
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
|
||||
'django.contrib.auth.hashers.ScryptPasswordHasher',
|
||||
"django.contrib.auth.hashers.PBKDF2PasswordHasher",
|
||||
"django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher",
|
||||
"django.contrib.auth.hashers.Argon2PasswordHasher",
|
||||
"django.contrib.auth.hashers.BCryptSHA256PasswordHasher",
|
||||
"django.contrib.auth.hashers.ScryptPasswordHasher",
|
||||
]
|
||||
|
||||
AUTH_PASSWORD_VALIDATORS = []
|
||||
|
@ -545,7 +545,7 @@ AUTH_PASSWORD_VALIDATORS = []
|
|||
# SIGNING #
|
||||
###########
|
||||
|
||||
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
|
||||
SIGNING_BACKEND = "django.core.signing.TimestampSigner"
|
||||
|
||||
########
|
||||
# CSRF #
|
||||
|
@ -553,17 +553,17 @@ SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
|
|||
|
||||
# Dotted path to callable to be used as view when a request is
|
||||
# rejected by the CSRF middleware.
|
||||
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
|
||||
CSRF_FAILURE_VIEW = "django.views.csrf.csrf_failure"
|
||||
|
||||
# Settings for CSRF cookie.
|
||||
CSRF_COOKIE_NAME = 'csrftoken'
|
||||
CSRF_COOKIE_NAME = "csrftoken"
|
||||
CSRF_COOKIE_AGE = 60 * 60 * 24 * 7 * 52
|
||||
CSRF_COOKIE_DOMAIN = None
|
||||
CSRF_COOKIE_PATH = '/'
|
||||
CSRF_COOKIE_PATH = "/"
|
||||
CSRF_COOKIE_SECURE = False
|
||||
CSRF_COOKIE_HTTPONLY = False
|
||||
CSRF_COOKIE_SAMESITE = 'Lax'
|
||||
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
|
||||
CSRF_COOKIE_SAMESITE = "Lax"
|
||||
CSRF_HEADER_NAME = "HTTP_X_CSRFTOKEN"
|
||||
CSRF_TRUSTED_ORIGINS = []
|
||||
CSRF_USE_SESSIONS = False
|
||||
|
||||
|
@ -576,7 +576,7 @@ CSRF_COOKIE_MASKED = False
|
|||
############
|
||||
|
||||
# Class to use as messages backend
|
||||
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
|
||||
MESSAGE_STORAGE = "django.contrib.messages.storage.fallback.FallbackStorage"
|
||||
|
||||
# Default values of MESSAGE_LEVEL and MESSAGE_TAGS are defined within
|
||||
# django.contrib.messages to avoid imports in this settings file.
|
||||
|
@ -586,25 +586,25 @@ MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
|
|||
###########
|
||||
|
||||
# The callable to use to configure logging
|
||||
LOGGING_CONFIG = 'logging.config.dictConfig'
|
||||
LOGGING_CONFIG = "logging.config.dictConfig"
|
||||
|
||||
# Custom logging configuration.
|
||||
LOGGING = {}
|
||||
|
||||
# Default exception reporter class used in case none has been
|
||||
# specifically assigned to the HttpRequest instance.
|
||||
DEFAULT_EXCEPTION_REPORTER = 'django.views.debug.ExceptionReporter'
|
||||
DEFAULT_EXCEPTION_REPORTER = "django.views.debug.ExceptionReporter"
|
||||
|
||||
# Default exception reporter filter class used in case none has been
|
||||
# specifically assigned to the HttpRequest instance.
|
||||
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
|
||||
DEFAULT_EXCEPTION_REPORTER_FILTER = "django.views.debug.SafeExceptionReporterFilter"
|
||||
|
||||
###########
|
||||
# TESTING #
|
||||
###########
|
||||
|
||||
# The name of the class to use to run the test suite
|
||||
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
|
||||
TEST_RUNNER = "django.test.runner.DiscoverRunner"
|
||||
|
||||
# Apps that don't need to be serialized at test database creation time
|
||||
# (only apps with migrations are to start with)
|
||||
|
@ -625,13 +625,13 @@ FIXTURE_DIRS = []
|
|||
STATICFILES_DIRS = []
|
||||
|
||||
# The default file storage backend used during the build process
|
||||
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
|
||||
STATICFILES_STORAGE = "django.contrib.staticfiles.storage.StaticFilesStorage"
|
||||
|
||||
# List of finder classes that know how to find static files in
|
||||
# various locations.
|
||||
STATICFILES_FINDERS = [
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
"django.contrib.staticfiles.finders.FileSystemFinder",
|
||||
"django.contrib.staticfiles.finders.AppDirectoriesFinder",
|
||||
# 'django.contrib.staticfiles.finders.DefaultStorageFinder',
|
||||
]
|
||||
|
||||
|
@ -656,11 +656,11 @@ SILENCED_SYSTEM_CHECKS = []
|
|||
# SECURITY MIDDLEWARE #
|
||||
#######################
|
||||
SECURE_CONTENT_TYPE_NOSNIFF = True
|
||||
SECURE_CROSS_ORIGIN_OPENER_POLICY = 'same-origin'
|
||||
SECURE_CROSS_ORIGIN_OPENER_POLICY = "same-origin"
|
||||
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
|
||||
SECURE_HSTS_PRELOAD = False
|
||||
SECURE_HSTS_SECONDS = 0
|
||||
SECURE_REDIRECT_EXEMPT = []
|
||||
SECURE_REFERRER_POLICY = 'same-origin'
|
||||
SECURE_REFERRER_POLICY = "same-origin"
|
||||
SECURE_SSL_HOST = None
|
||||
SECURE_SSL_REDIRECT = False
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F، Y'
|
||||
TIME_FORMAT = 'g:i A'
|
||||
DATE_FORMAT = "j F، Y"
|
||||
TIME_FORMAT = "g:i A"
|
||||
# DATETIME_FORMAT =
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATE_FORMAT = 'd/m/Y'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,28 +2,28 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j F Y'
|
||||
SHORT_DATETIME_FORMAT = 'j F Y H:i'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j F Y"
|
||||
SHORT_DATETIME_FORMAT = "j F Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y/%m/%d', # '2006/10/25'
|
||||
"%Y/%m/%d", # '2006/10/25'
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M', # '14:30
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
"%H:%M", # '14:30
|
||||
"%H:%M:%S", # '14:30:59'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y/%m/%d %H:%M', # '2006/10/25 14:30'
|
||||
'%Y/%m/%d %H:%M:%S', # '2006/10/25 14:30:59'
|
||||
"%Y/%m/%d %H:%M", # '2006/10/25 14:30'
|
||||
"%Y/%m/%d %H:%M:%S", # '2006/10/25 14:30:59'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j E Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j E Y, G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j E Y"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j E Y, G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATE_FORMAT = "d F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATE_FORMAT = 'd.m.Y'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = ' ' # Non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = " " # Non-breaking space
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,31 +2,31 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F, Y'
|
||||
TIME_FORMAT = 'g:i A'
|
||||
DATE_FORMAT = "j F, Y"
|
||||
TIME_FORMAT = "g:i A"
|
||||
# DATETIME_FORMAT =
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M, Y'
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j M, Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
FIRST_DAY_OF_WEEK = 6 # Saturday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # 25/10/2016
|
||||
'%d/%m/%y', # 25/10/16
|
||||
'%d-%m-%Y', # 25-10-2016
|
||||
'%d-%m-%y', # 25-10-16
|
||||
"%d/%m/%Y", # 25/10/2016
|
||||
"%d/%m/%y", # 25/10/16
|
||||
"%d-%m-%Y", # 25-10-2016
|
||||
"%d-%m-%y", # 25-10-16
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # 14:30:59
|
||||
'%H:%M', # 14:30
|
||||
"%H:%M:%S", # 14:30:59
|
||||
"%H:%M", # 14:30
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S', # 25/10/2006 14:30:59
|
||||
'%d/%m/%Y %H:%M', # 25/10/2006 14:30
|
||||
"%d/%m/%Y %H:%M:%S", # 25/10/2006 14:30:59
|
||||
"%d/%m/%Y %H:%M", # 25/10/2006 14:30
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. N Y.'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j. N. Y. G:i T'
|
||||
YEAR_MONTH_FORMAT = 'F Y.'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'Y M j'
|
||||
DATE_FORMAT = "j. N Y."
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j. N. Y. G:i T"
|
||||
YEAR_MONTH_FORMAT = "F Y."
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "Y M j"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATE_FORMAT = 'Y M j'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y \a \l\e\s G:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e\l Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y G:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\e\s G:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e\l Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y G:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '31/12/2009'
|
||||
'%d/%m/%y', # '31/12/09'
|
||||
"%d/%m/%Y", # '31/12/2009'
|
||||
"%d/%m/%y", # '31/12/09'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S',
|
||||
'%d/%m/%Y %H:%M:%S.%f',
|
||||
'%d/%m/%Y %H:%M',
|
||||
'%d/%m/%y %H:%M:%S',
|
||||
'%d/%m/%y %H:%M:%S.%f',
|
||||
'%d/%m/%y %H:%M',
|
||||
"%d/%m/%Y %H:%M:%S",
|
||||
"%d/%m/%Y %H:%M:%S.%f",
|
||||
"%d/%m/%Y %H:%M",
|
||||
"%d/%m/%y %H:%M:%S",
|
||||
"%d/%m/%y %H:%M:%S.%f",
|
||||
"%d/%m/%y %H:%M",
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,42 +2,42 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. E Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j. E Y G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y G:i'
|
||||
DATE_FORMAT = "j. E Y"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j. E Y G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y G:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '05.01.2006'
|
||||
'%d.%m.%y', # '05.01.06'
|
||||
'%d. %m. %Y', # '5. 1. 2006'
|
||||
'%d. %m. %y', # '5. 1. 06'
|
||||
"%d.%m.%Y", # '05.01.2006'
|
||||
"%d.%m.%y", # '05.01.06'
|
||||
"%d. %m. %Y", # '5. 1. 2006'
|
||||
"%d. %m. %y", # '5. 1. 06'
|
||||
# "%d. %B %Y", # '25. October 2006'
|
||||
# "%d. %b. %Y", # '25. Oct. 2006'
|
||||
]
|
||||
# Kept ISO formats as one is in first position
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '04:30:59'
|
||||
'%H.%M', # '04.30'
|
||||
'%H:%M', # '04:30'
|
||||
"%H:%M:%S", # '04:30:59'
|
||||
"%H.%M", # '04.30'
|
||||
"%H:%M", # '04:30'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '05.01.2006 04:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '05.01.2006 04:30:59.000200'
|
||||
'%d.%m.%Y %H.%M', # '05.01.2006 04.30'
|
||||
'%d.%m.%Y %H:%M', # '05.01.2006 04:30'
|
||||
'%d. %m. %Y %H:%M:%S', # '05. 01. 2006 04:30:59'
|
||||
'%d. %m. %Y %H:%M:%S.%f', # '05. 01. 2006 04:30:59.000200'
|
||||
'%d. %m. %Y %H.%M', # '05. 01. 2006 04.30'
|
||||
'%d. %m. %Y %H:%M', # '05. 01. 2006 04:30'
|
||||
'%Y-%m-%d %H.%M', # '2006-01-05 04.30'
|
||||
"%d.%m.%Y %H:%M:%S", # '05.01.2006 04:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '05.01.2006 04:30:59.000200'
|
||||
"%d.%m.%Y %H.%M", # '05.01.2006 04.30'
|
||||
"%d.%m.%Y %H:%M", # '05.01.2006 04:30'
|
||||
"%d. %m. %Y %H:%M:%S", # '05. 01. 2006 04:30:59'
|
||||
"%d. %m. %Y %H:%M:%S.%f", # '05. 01. 2006 04:30:59.000200'
|
||||
"%d. %m. %Y %H.%M", # '05. 01. 2006 04.30'
|
||||
"%d. %m. %Y %H:%M", # '05. 01. 2006 04:30'
|
||||
"%Y-%m-%d %H.%M", # '2006-01-05 04.30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,32 +2,32 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y' # '25 Hydref 2006'
|
||||
TIME_FORMAT = 'P' # '2:30 y.b.'
|
||||
DATETIME_FORMAT = 'j F Y, P' # '25 Hydref 2006, 2:30 y.b.'
|
||||
YEAR_MONTH_FORMAT = 'F Y' # 'Hydref 2006'
|
||||
MONTH_DAY_FORMAT = 'j F' # '25 Hydref'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y' # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y P' # '25/10/2006 2:30 y.b.'
|
||||
FIRST_DAY_OF_WEEK = 1 # 'Dydd Llun'
|
||||
DATE_FORMAT = "j F Y" # '25 Hydref 2006'
|
||||
TIME_FORMAT = "P" # '2:30 y.b.'
|
||||
DATETIME_FORMAT = "j F Y, P" # '25 Hydref 2006, 2:30 y.b.'
|
||||
YEAR_MONTH_FORMAT = "F Y" # 'Hydref 2006'
|
||||
MONTH_DAY_FORMAT = "j F" # '25 Hydref'
|
||||
SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y P" # '25/10/2006 2:30 y.b.'
|
||||
FIRST_DAY_OF_WEEK = 1 # 'Dydd Llun'
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
|
||||
"%d/%m/%y %H:%M", # '25/10/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,25 +2,25 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j. F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,28 +2,28 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j. F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
# "%d. %B %Y", # '25. October 2006'
|
||||
# "%d. %b. %Y", # '25. Oct. 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,27 +2,27 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j. F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
# "%d. %B %Y", # '25. October 2006'
|
||||
# "%d. %b. %Y", # '25. Oct. 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
]
|
||||
|
||||
# these are the separators for non-monetary numbers. For monetary numbers,
|
||||
|
@ -30,6 +30,6 @@ DATETIME_INPUT_FORMATS = [
|
|||
# ' (single quote).
|
||||
# For details, please refer to the documentation and the following link:
|
||||
# https://www.bk.admin.ch/bk/de/home/dokumentation/sprachen/hilfsmittel-textredaktion/schreibweisungen.html
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,33 +2,33 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd/m/Y'
|
||||
TIME_FORMAT = 'P'
|
||||
DATETIME_FORMAT = 'd/m/Y P'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y P'
|
||||
DATE_FORMAT = "d/m/Y"
|
||||
TIME_FORMAT = "P"
|
||||
DATETIME_FORMAT = "d/m/Y P"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y P"
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
|
||||
"%d/%m/%y %H:%M", # '25/10/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -4,19 +4,19 @@
|
|||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
|
||||
# Formatting for date objects.
|
||||
DATE_FORMAT = 'N j, Y'
|
||||
DATE_FORMAT = "N j, Y"
|
||||
# Formatting for time objects.
|
||||
TIME_FORMAT = 'P'
|
||||
TIME_FORMAT = "P"
|
||||
# Formatting for datetime objects.
|
||||
DATETIME_FORMAT = 'N j, Y, P'
|
||||
DATETIME_FORMAT = "N j, Y, P"
|
||||
# Formatting for date objects when only the year and month are relevant.
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
# Formatting for date objects when only the month and day are relevant.
|
||||
MONTH_DAY_FORMAT = 'F j'
|
||||
MONTH_DAY_FORMAT = "F j"
|
||||
# Short formatting for date objects.
|
||||
SHORT_DATE_FORMAT = 'm/d/Y'
|
||||
SHORT_DATE_FORMAT = "m/d/Y"
|
||||
# Short formatting for datetime objects.
|
||||
SHORT_DATETIME_FORMAT = 'm/d/Y P'
|
||||
SHORT_DATETIME_FORMAT = "m/d/Y P"
|
||||
# First day of week, to be used on calendars.
|
||||
# 0 means Sunday, 1 means Monday...
|
||||
FIRST_DAY_OF_WEEK = 0
|
||||
|
@ -27,39 +27,39 @@ FIRST_DAY_OF_WEEK = 0
|
|||
# Note that these format strings are different from the ones to display dates.
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%m/%d/%Y', # '10/25/2006'
|
||||
'%m/%d/%y', # '10/25/06'
|
||||
'%b %d %Y', # 'Oct 25 2006'
|
||||
'%b %d, %Y', # 'Oct 25, 2006'
|
||||
'%d %b %Y', # '25 Oct 2006'
|
||||
'%d %b, %Y', # '25 Oct, 2006'
|
||||
'%B %d %Y', # 'October 25 2006'
|
||||
'%B %d, %Y', # 'October 25, 2006'
|
||||
'%d %B %Y', # '25 October 2006'
|
||||
'%d %B, %Y', # '25 October, 2006'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%m/%d/%Y", # '10/25/2006'
|
||||
"%m/%d/%y", # '10/25/06'
|
||||
"%b %d %Y", # 'Oct 25 2006'
|
||||
"%b %d, %Y", # 'Oct 25, 2006'
|
||||
"%d %b %Y", # '25 Oct 2006'
|
||||
"%d %b, %Y", # '25 Oct, 2006'
|
||||
"%B %d %Y", # 'October 25 2006'
|
||||
"%B %d, %Y", # 'October 25, 2006'
|
||||
"%d %B %Y", # '25 October 2006'
|
||||
"%d %B, %Y", # '25 October, 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
|
||||
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
|
||||
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
|
||||
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
|
||||
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
|
||||
'%m/%d/%y %H:%M', # '10/25/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59'
|
||||
"%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200'
|
||||
"%m/%d/%Y %H:%M", # '10/25/2006 14:30'
|
||||
"%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59'
|
||||
"%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200'
|
||||
"%m/%d/%y %H:%M", # '10/25/06 14:30'
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
'%H:%M:%S.%f', # '14:30:59.000200'
|
||||
'%H:%M', # '14:30'
|
||||
"%H:%M:%S", # '14:30:59'
|
||||
"%H:%M:%S.%f", # '14:30:59.000200'
|
||||
"%H:%M", # '14:30'
|
||||
]
|
||||
|
||||
# Decimal separator symbol.
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = "."
|
||||
# Thousand separator symbol.
|
||||
THOUSAND_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = ","
|
||||
# Number of digits that will be together, when splitting them by
|
||||
# THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands.
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j M Y' # '25 Oct 2006'
|
||||
TIME_FORMAT = 'P' # '2:30 p.m.'
|
||||
DATETIME_FORMAT = 'j M Y, P' # '25 Oct 2006, 2:30 p.m.'
|
||||
YEAR_MONTH_FORMAT = 'F Y' # 'October 2006'
|
||||
MONTH_DAY_FORMAT = 'j F' # '25 October'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y' # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y P' # '25/10/2006 2:30 p.m.'
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
DATE_FORMAT = "j M Y" # '25 Oct 2006'
|
||||
TIME_FORMAT = "P" # '2:30 p.m.'
|
||||
DATETIME_FORMAT = "j M Y, P" # '25 Oct 2006, 2:30 p.m.'
|
||||
YEAR_MONTH_FORMAT = "F Y" # 'October 2006'
|
||||
MONTH_DAY_FORMAT = "j F" # '25 October'
|
||||
SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y P" # '25/10/2006 2:30 p.m.'
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
# "%b %d %Y", # 'Oct 25 2006'
|
||||
# "%b %d, %Y", # 'Oct 25, 2006'
|
||||
# "%d %b %Y", # '25 Oct 2006'
|
||||
|
@ -26,16 +26,16 @@ DATE_INPUT_FORMATS = [
|
|||
# "%d %B, %Y", # '25 October, 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
|
||||
"%d/%m/%y %H:%M", # '25/10/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j M Y' # '25 Oct 2006'
|
||||
TIME_FORMAT = 'P' # '2:30 p.m.'
|
||||
DATETIME_FORMAT = 'j M Y, P' # '25 Oct 2006, 2:30 p.m.'
|
||||
YEAR_MONTH_FORMAT = 'F Y' # 'October 2006'
|
||||
MONTH_DAY_FORMAT = 'j F' # '25 October'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y' # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y P' # '25/10/2006 2:30 p.m.'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
DATE_FORMAT = "j M Y" # '25 Oct 2006'
|
||||
TIME_FORMAT = "P" # '2:30 p.m.'
|
||||
DATETIME_FORMAT = "j M Y, P" # '25 Oct 2006, 2:30 p.m.'
|
||||
YEAR_MONTH_FORMAT = "F Y" # 'October 2006'
|
||||
MONTH_DAY_FORMAT = "j F" # '25 October'
|
||||
SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y P" # '25/10/2006 2:30 p.m.'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
# "%b %d %Y", # 'Oct 25 2006'
|
||||
# "%b %d, %Y", # 'Oct 25, 2006'
|
||||
# "%d %b %Y", # '25 Oct 2006'
|
||||
|
@ -26,16 +26,16 @@ DATE_INPUT_FORMATS = [
|
|||
# "%d %B, %Y", # '25 October, 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
|
||||
"%d/%m/%y %H:%M", # '25/10/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,46 +2,43 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j\-\a \d\e F Y' # '26-a de julio 1887'
|
||||
TIME_FORMAT = 'H:i' # '18:59'
|
||||
DATETIME_FORMAT = r'j\-\a \d\e F Y\, \j\e H:i' # '26-a de julio 1887, je 18:59'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y' # 'julio de 1887'
|
||||
MONTH_DAY_FORMAT = r'j\-\a \d\e F' # '26-a de julio'
|
||||
SHORT_DATE_FORMAT = 'Y-m-d' # '1887-07-26'
|
||||
SHORT_DATETIME_FORMAT = 'Y-m-d H:i' # '1887-07-26 18:59'
|
||||
DATE_FORMAT = r"j\-\a \d\e F Y" # '26-a de julio 1887'
|
||||
TIME_FORMAT = "H:i" # '18:59'
|
||||
DATETIME_FORMAT = r"j\-\a \d\e F Y\, \j\e H:i" # '26-a de julio 1887, je 18:59'
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y" # 'julio de 1887'
|
||||
MONTH_DAY_FORMAT = r"j\-\a \d\e F" # '26-a de julio'
|
||||
SHORT_DATE_FORMAT = "Y-m-d" # '1887-07-26'
|
||||
SHORT_DATETIME_FORMAT = "Y-m-d H:i" # '1887-07-26 18:59'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday (lundo)
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '1887-07-26'
|
||||
'%y-%m-%d', # '87-07-26'
|
||||
'%Y %m %d', # '1887 07 26'
|
||||
'%Y.%m.%d', # '1887.07.26'
|
||||
'%d-a de %b %Y', # '26-a de jul 1887'
|
||||
'%d %b %Y', # '26 jul 1887'
|
||||
'%d-a de %B %Y', # '26-a de julio 1887'
|
||||
'%d %B %Y', # '26 julio 1887'
|
||||
'%d %m %Y', # '26 07 1887'
|
||||
'%d/%m/%Y', # '26/07/1887'
|
||||
"%Y-%m-%d", # '1887-07-26'
|
||||
"%y-%m-%d", # '87-07-26'
|
||||
"%Y %m %d", # '1887 07 26'
|
||||
"%Y.%m.%d", # '1887.07.26'
|
||||
"%d-a de %b %Y", # '26-a de jul 1887'
|
||||
"%d %b %Y", # '26 jul 1887'
|
||||
"%d-a de %B %Y", # '26-a de julio 1887'
|
||||
"%d %B %Y", # '26 julio 1887'
|
||||
"%d %m %Y", # '26 07 1887'
|
||||
"%d/%m/%Y", # '26/07/1887'
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '18:59:00'
|
||||
'%H:%M', # '18:59'
|
||||
"%H:%M:%S", # '18:59:00'
|
||||
"%H:%M", # '18:59'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '1887-07-26 18:59:00'
|
||||
'%Y-%m-%d %H:%M', # '1887-07-26 18:59'
|
||||
|
||||
'%Y.%m.%d %H:%M:%S', # '1887.07.26 18:59:00'
|
||||
'%Y.%m.%d %H:%M', # '1887.07.26 18:59'
|
||||
|
||||
'%d/%m/%Y %H:%M:%S', # '26/07/1887 18:59:00'
|
||||
'%d/%m/%Y %H:%M', # '26/07/1887 18:59'
|
||||
|
||||
'%y-%m-%d %H:%M:%S', # '87-07-26 18:59:00'
|
||||
'%y-%m-%d %H:%M', # '87-07-26 18:59'
|
||||
"%Y-%m-%d %H:%M:%S", # '1887-07-26 18:59:00'
|
||||
"%Y-%m-%d %H:%M", # '1887-07-26 18:59'
|
||||
"%Y.%m.%d %H:%M:%S", # '1887.07.26 18:59:00'
|
||||
"%Y.%m.%d %H:%M", # '1887.07.26 18:59'
|
||||
"%d/%m/%Y %H:%M:%S", # '26/07/1887 18:59:00'
|
||||
"%d/%m/%Y %H:%M", # '26/07/1887 18:59'
|
||||
"%y-%m-%d %H:%M:%S", # '87-07-26 18:59:00'
|
||||
"%y-%m-%d %H:%M", # '87-07-26 18:59'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y \a \l\a\s H:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '31/12/2009'
|
||||
'%d/%m/%y', # '31/12/09'
|
||||
"%d/%m/%Y", # '31/12/2009'
|
||||
"%d/%m/%y", # '31/12/09'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S',
|
||||
'%d/%m/%Y %H:%M:%S.%f',
|
||||
'%d/%m/%Y %H:%M',
|
||||
'%d/%m/%y %H:%M:%S',
|
||||
'%d/%m/%y %H:%M:%S.%f',
|
||||
'%d/%m/%y %H:%M',
|
||||
"%d/%m/%Y %H:%M:%S",
|
||||
"%d/%m/%Y %H:%M:%S.%f",
|
||||
"%d/%m/%Y %H:%M",
|
||||
"%d/%m/%y %H:%M:%S",
|
||||
"%d/%m/%y %H:%M:%S.%f",
|
||||
"%d/%m/%y %H:%M",
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j N Y'
|
||||
TIME_FORMAT = r'H:i'
|
||||
DATETIME_FORMAT = r'j N Y H:i'
|
||||
YEAR_MONTH_FORMAT = r'F Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = r'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = r'd/m/Y H:i'
|
||||
DATE_FORMAT = r"j N Y"
|
||||
TIME_FORMAT = r"H:i"
|
||||
DATETIME_FORMAT = r"j N Y H:i"
|
||||
YEAR_MONTH_FORMAT = r"F Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = r"d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = r"d/m/Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 0 # 0: Sunday, 1: Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '31/12/2009'
|
||||
'%d/%m/%y', # '31/12/09'
|
||||
"%d/%m/%Y", # '31/12/2009'
|
||||
"%d/%m/%y", # '31/12/09'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S',
|
||||
'%d/%m/%Y %H:%M:%S.%f',
|
||||
'%d/%m/%Y %H:%M',
|
||||
'%d/%m/%y %H:%M:%S',
|
||||
'%d/%m/%y %H:%M:%S.%f',
|
||||
'%d/%m/%y %H:%M',
|
||||
"%d/%m/%Y %H:%M:%S",
|
||||
"%d/%m/%Y %H:%M:%S.%f",
|
||||
"%d/%m/%Y %H:%M",
|
||||
"%d/%m/%y %H:%M:%S",
|
||||
"%d/%m/%y %H:%M:%S.%f",
|
||||
"%d/%m/%y %H:%M",
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -1,27 +1,26 @@
|
|||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y \a \l\a\s H:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
'%Y%m%d', # '20061025'
|
||||
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
"%Y%m%d", # '20061025'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S',
|
||||
'%d/%m/%Y %H:%M:%S.%f',
|
||||
'%d/%m/%Y %H:%M',
|
||||
'%d/%m/%y %H:%M:%S',
|
||||
'%d/%m/%y %H:%M:%S.%f',
|
||||
'%d/%m/%y %H:%M',
|
||||
"%d/%m/%Y %H:%M:%S",
|
||||
"%d/%m/%Y %H:%M:%S.%f",
|
||||
"%d/%m/%Y %H:%M",
|
||||
"%d/%m/%y %H:%M:%S",
|
||||
"%d/%m/%y %H:%M:%S.%f",
|
||||
"%d/%m/%y %H:%M",
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y \a \l\a\s H:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday: ISO 8601
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
'%Y%m%d', # '20061025'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
"%Y%m%d", # '20061025'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S',
|
||||
'%d/%m/%Y %H:%M:%S.%f',
|
||||
'%d/%m/%Y %H:%M',
|
||||
'%d/%m/%y %H:%M:%S',
|
||||
'%d/%m/%y %H:%M:%S.%f',
|
||||
'%d/%m/%y %H:%M',
|
||||
"%d/%m/%Y %H:%M:%S",
|
||||
"%d/%m/%Y %H:%M:%S.%f",
|
||||
"%d/%m/%Y %H:%M",
|
||||
"%d/%m/%y %H:%M:%S",
|
||||
"%d/%m/%y %H:%M:%S.%f",
|
||||
"%d/%m/%y %H:%M",
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.' # ',' is also official (less common): NOM-008-SCFI-2002
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "." # ',' is also official (less common): NOM-008-SCFI-2002
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -1,27 +1,26 @@
|
|||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y \a \l\a\s H:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday: ISO 8601
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
'%Y%m%d', # '20061025'
|
||||
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
"%Y%m%d", # '20061025'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S',
|
||||
'%d/%m/%Y %H:%M:%S.%f',
|
||||
'%d/%m/%Y %H:%M',
|
||||
'%d/%m/%y %H:%M:%S',
|
||||
'%d/%m/%y %H:%M:%S.%f',
|
||||
'%d/%m/%y %H:%M',
|
||||
"%d/%m/%Y %H:%M:%S",
|
||||
"%d/%m/%Y %H:%M:%S.%f",
|
||||
"%d/%m/%Y %H:%M",
|
||||
"%d/%m/%y %H:%M:%S",
|
||||
"%d/%m/%y %H:%M:%S.%f",
|
||||
"%d/%m/%y %H:%M",
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
# This file is distributed under the same license as the Django package.
|
||||
#
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y \a \l\a\s H:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '31/12/2009'
|
||||
'%d/%m/%y', # '31/12/09'
|
||||
"%d/%m/%Y", # '31/12/2009'
|
||||
"%d/%m/%y", # '31/12/09'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S',
|
||||
'%d/%m/%Y %H:%M:%S.%f',
|
||||
'%d/%m/%Y %H:%M',
|
||||
'%d/%m/%y %H:%M:%S',
|
||||
'%d/%m/%y %H:%M:%S.%f',
|
||||
'%d/%m/%y %H:%M',
|
||||
"%d/%m/%Y %H:%M:%S",
|
||||
"%d/%m/%Y %H:%M:%S.%f",
|
||||
"%d/%m/%Y %H:%M",
|
||||
"%d/%m/%y %H:%M:%S",
|
||||
"%d/%m/%y %H:%M:%S.%f",
|
||||
"%d/%m/%y %H:%M",
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATE_FORMAT = "j. F Y"
|
||||
TIME_FORMAT = "G:i"
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATE_FORMAT = 'd.m.Y'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = ' ' # Non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = " " # Non-breaking space
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'Y\k\o N j\a'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'Y\k\o N j\a, H:i'
|
||||
YEAR_MONTH_FORMAT = r'Y\k\o F'
|
||||
MONTH_DAY_FORMAT = r'F\r\e\n j\a'
|
||||
SHORT_DATE_FORMAT = 'Y-m-d'
|
||||
SHORT_DATETIME_FORMAT = 'Y-m-d H:i'
|
||||
DATE_FORMAT = r"Y\k\o N j\a"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"Y\k\o N j\a, H:i"
|
||||
YEAR_MONTH_FORMAT = r"Y\k\o F"
|
||||
MONTH_DAY_FORMAT = r"F\r\e\n j\a"
|
||||
SHORT_DATE_FORMAT = "Y-m-d"
|
||||
SHORT_DATETIME_FORMAT = "Y-m-d H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Astelehena
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
|
@ -16,6 +16,6 @@ FIRST_DAY_OF_WEEK = 1 # Astelehena
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j F Y، ساعت G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'Y/n/j'
|
||||
SHORT_DATETIME_FORMAT = 'Y/n/j، G:i'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j F Y، ساعت G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "Y/n/j"
|
||||
SHORT_DATETIME_FORMAT = "Y/n/j، G:i"
|
||||
FIRST_DAY_OF_WEEK = 6
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
|
@ -16,6 +16,6 @@ FIRST_DAY_OF_WEEK = 6
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,36 +2,35 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. E Y'
|
||||
TIME_FORMAT = 'G.i'
|
||||
DATETIME_FORMAT = r'j. E Y \k\e\l\l\o G.i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'j.n.Y'
|
||||
SHORT_DATETIME_FORMAT = 'j.n.Y G.i'
|
||||
DATE_FORMAT = "j. E Y"
|
||||
TIME_FORMAT = "G.i"
|
||||
DATETIME_FORMAT = r"j. E Y \k\e\l\l\o G.i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "j.n.Y"
|
||||
SHORT_DATETIME_FORMAT = "j.n.Y G.i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '20.3.2014'
|
||||
'%d.%m.%y', # '20.3.14'
|
||||
"%d.%m.%Y", # '20.3.2014'
|
||||
"%d.%m.%y", # '20.3.14'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H.%M.%S', # '20.3.2014 14.30.59'
|
||||
'%d.%m.%Y %H.%M.%S.%f', # '20.3.2014 14.30.59.000200'
|
||||
'%d.%m.%Y %H.%M', # '20.3.2014 14.30'
|
||||
|
||||
'%d.%m.%y %H.%M.%S', # '20.3.14 14.30.59'
|
||||
'%d.%m.%y %H.%M.%S.%f', # '20.3.14 14.30.59.000200'
|
||||
'%d.%m.%y %H.%M', # '20.3.14 14.30'
|
||||
"%d.%m.%Y %H.%M.%S", # '20.3.2014 14.30.59'
|
||||
"%d.%m.%Y %H.%M.%S.%f", # '20.3.2014 14.30.59.000200'
|
||||
"%d.%m.%Y %H.%M", # '20.3.2014 14.30'
|
||||
"%d.%m.%y %H.%M.%S", # '20.3.14 14.30.59'
|
||||
"%d.%m.%y %H.%M.%S.%f", # '20.3.14 14.30.59.000200'
|
||||
"%d.%m.%y %H.%M", # '20.3.14 14.30'
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H.%M.%S', # '14.30.59'
|
||||
'%H.%M.%S.%f', # '14.30.59.000200'
|
||||
'%H.%M', # '14.30'
|
||||
"%H.%M.%S", # '14.30.59'
|
||||
"%H.%M.%S.%f", # '14.30.59.000200'
|
||||
"%H.%M", # '14.30'
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # Non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # Non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,32 +2,32 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j N Y'
|
||||
SHORT_DATETIME_FORMAT = 'j N Y H:i'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j N Y"
|
||||
SHORT_DATETIME_FORMAT = "j N Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
'%d.%m.%Y', # Swiss [fr_CH] '25.10.2006'
|
||||
'%d.%m.%y', # Swiss [fr_CH] '25.10.06'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
"%d.%m.%Y", # Swiss [fr_CH] '25.10.2006'
|
||||
"%d.%m.%y", # Swiss [fr_CH] '25.10.06'
|
||||
# '%d %B %Y', '%d %b %Y', # '25 octobre 2006', '25 oct. 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d.%m.%Y %H:%M:%S', # Swiss [fr_CH), '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # Swiss (fr_CH), '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # Swiss (fr_CH), '25.10.2006 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # Swiss [fr_CH), '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # Swiss (fr_CH), '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # Swiss (fr_CH), '25.10.2006 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M Y'
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j M Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATE_FORMAT = 'j M Y'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'h:ia'
|
||||
DATETIME_FORMAT = 'j F Y h:ia'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "h:ia"
|
||||
DATETIME_FORMAT = "j F Y h:ia"
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M Y'
|
||||
SHORT_DATETIME_FORMAT = 'j M Y h:ia'
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j M Y"
|
||||
SHORT_DATETIME_FORMAT = "j M Y h:ia"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
|
@ -16,6 +16,6 @@ FIRST_DAY_OF_WEEK = 1 # Monday
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y \á\s H:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd-m-Y'
|
||||
SHORT_DATETIME_FORMAT = 'd-m-Y, H:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y \á\s H:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d-m-Y"
|
||||
SHORT_DATETIME_FORMAT = "d-m-Y, H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
|
@ -16,6 +16,6 @@ FIRST_DAY_OF_WEEK = 1 # Monday
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j בF Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j בF Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j בF'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
||||
DATE_FORMAT = "j בF Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j בF Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j בF"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i"
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'g:i A'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "g:i A"
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd-m-Y'
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d-m-Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATE_FORMAT = 'd-m-Y'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,43 +2,43 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. E Y.'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. E Y. H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y.'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'j.m.Y.'
|
||||
SHORT_DATETIME_FORMAT = 'j.m.Y. H:i'
|
||||
DATE_FORMAT = "j. E Y."
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. E Y. H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y."
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "j.m.Y."
|
||||
SHORT_DATETIME_FORMAT = "j.m.Y. H:i"
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d.%m.%Y.', # '25.10.2006.'
|
||||
'%d.%m.%y.', # '25.10.06.'
|
||||
'%d. %m. %Y.', # '25. 10. 2006.'
|
||||
'%d. %m. %y.', # '25. 10. 06.'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%d.%m.%Y.", # '25.10.2006.'
|
||||
"%d.%m.%y.", # '25.10.06.'
|
||||
"%d. %m. %Y.", # '25. 10. 2006.'
|
||||
"%d. %m. %y.", # '25. 10. 06.'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d.%m.%Y. %H:%M:%S', # '25.10.2006. 14:30:59'
|
||||
'%d.%m.%Y. %H:%M:%S.%f', # '25.10.2006. 14:30:59.000200'
|
||||
'%d.%m.%Y. %H:%M', # '25.10.2006. 14:30'
|
||||
'%d.%m.%y. %H:%M:%S', # '25.10.06. 14:30:59'
|
||||
'%d.%m.%y. %H:%M:%S.%f', # '25.10.06. 14:30:59.000200'
|
||||
'%d.%m.%y. %H:%M', # '25.10.06. 14:30'
|
||||
'%d. %m. %Y. %H:%M:%S', # '25. 10. 2006. 14:30:59'
|
||||
'%d. %m. %Y. %H:%M:%S.%f', # '25. 10. 2006. 14:30:59.000200'
|
||||
'%d. %m. %Y. %H:%M', # '25. 10. 2006. 14:30'
|
||||
'%d. %m. %y. %H:%M:%S', # '25. 10. 06. 14:30:59'
|
||||
'%d. %m. %y. %H:%M:%S.%f', # '25. 10. 06. 14:30:59.000200'
|
||||
'%d. %m. %y. %H:%M', # '25. 10. 06. 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d.%m.%Y. %H:%M:%S", # '25.10.2006. 14:30:59'
|
||||
"%d.%m.%Y. %H:%M:%S.%f", # '25.10.2006. 14:30:59.000200'
|
||||
"%d.%m.%Y. %H:%M", # '25.10.2006. 14:30'
|
||||
"%d.%m.%y. %H:%M:%S", # '25.10.06. 14:30:59'
|
||||
"%d.%m.%y. %H:%M:%S.%f", # '25.10.06. 14:30:59.000200'
|
||||
"%d.%m.%y. %H:%M", # '25.10.06. 14:30'
|
||||
"%d. %m. %Y. %H:%M:%S", # '25. 10. 2006. 14:30:59'
|
||||
"%d. %m. %Y. %H:%M:%S.%f", # '25. 10. 2006. 14:30:59.000200'
|
||||
"%d. %m. %Y. %H:%M", # '25. 10. 2006. 14:30'
|
||||
"%d. %m. %y. %H:%M:%S", # '25. 10. 06. 14:30:59'
|
||||
"%d. %m. %y. %H:%M:%S.%f", # '25. 10. 06. 14:30:59.000200'
|
||||
"%d. %m. %y. %H:%M", # '25. 10. 06. 14:30'
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'Y. F j.'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'Y. F j. H:i'
|
||||
YEAR_MONTH_FORMAT = 'Y. F'
|
||||
MONTH_DAY_FORMAT = 'F j.'
|
||||
SHORT_DATE_FORMAT = 'Y.m.d.'
|
||||
SHORT_DATETIME_FORMAT = 'Y.m.d. H:i'
|
||||
DATE_FORMAT = "Y. F j."
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "Y. F j. H:i"
|
||||
YEAR_MONTH_FORMAT = "Y. F"
|
||||
MONTH_DAY_FORMAT = "F j."
|
||||
SHORT_DATE_FORMAT = "Y.m.d."
|
||||
SHORT_DATETIME_FORMAT = "Y.m.d. H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y.%m.%d.', # '2006.10.25.'
|
||||
"%Y.%m.%d.", # '2006.10.25.'
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
'%H:%M', # '14:30'
|
||||
"%H:%M:%S", # '14:30:59'
|
||||
"%H:%M", # '14:30'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y.%m.%d. %H:%M:%S', # '2006.10.25. 14:30:59'
|
||||
'%Y.%m.%d. %H:%M:%S.%f', # '2006.10.25. 14:30:59.000200'
|
||||
'%Y.%m.%d. %H:%M', # '2006.10.25. 14:30'
|
||||
"%Y.%m.%d. %H:%M:%S", # '2006.10.25. 14:30:59'
|
||||
"%Y.%m.%d. %H:%M:%S.%f", # '2006.10.25. 14:30:59.000200'
|
||||
"%Y.%m.%d. %H:%M", # '2006.10.25. 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = ' ' # Non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = " " # Non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,48 +2,48 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j N Y'
|
||||
DATE_FORMAT = "j N Y"
|
||||
DATETIME_FORMAT = "j N Y, G.i"
|
||||
TIME_FORMAT = 'G.i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd-m-Y'
|
||||
SHORT_DATETIME_FORMAT = 'd-m-Y G.i'
|
||||
TIME_FORMAT = "G.i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d-m-Y"
|
||||
SHORT_DATETIME_FORMAT = "d-m-Y G.i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d-%m-%Y', # '25-10-2009'
|
||||
'%d/%m/%Y', # '25/10/2009'
|
||||
'%d-%m-%y', # '25-10-09'
|
||||
'%d/%m/%y', # '25/10/09'
|
||||
'%d %b %Y', # '25 Oct 2006',
|
||||
'%d %B %Y', # '25 October 2006'
|
||||
'%m/%d/%y', # '10/25/06'
|
||||
'%m/%d/%Y', # '10/25/2009'
|
||||
"%d-%m-%Y", # '25-10-2009'
|
||||
"%d/%m/%Y", # '25/10/2009'
|
||||
"%d-%m-%y", # '25-10-09'
|
||||
"%d/%m/%y", # '25/10/09'
|
||||
"%d %b %Y", # '25 Oct 2006',
|
||||
"%d %B %Y", # '25 October 2006'
|
||||
"%m/%d/%y", # '10/25/06'
|
||||
"%m/%d/%Y", # '10/25/2009'
|
||||
]
|
||||
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H.%M.%S', # '14.30.59'
|
||||
'%H.%M', # '14.30'
|
||||
"%H.%M.%S", # '14.30.59'
|
||||
"%H.%M", # '14.30'
|
||||
]
|
||||
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d-%m-%Y %H.%M.%S', # '25-10-2009 14.30.59'
|
||||
'%d-%m-%Y %H.%M.%S.%f', # '25-10-2009 14.30.59.000200'
|
||||
'%d-%m-%Y %H.%M', # '25-10-2009 14.30'
|
||||
'%d-%m-%y %H.%M.%S', # '25-10-09' 14.30.59'
|
||||
'%d-%m-%y %H.%M.%S.%f', # '25-10-09' 14.30.59.000200'
|
||||
'%d-%m-%y %H.%M', # '25-10-09' 14.30'
|
||||
'%m/%d/%y %H.%M.%S', # '10/25/06 14.30.59'
|
||||
'%m/%d/%y %H.%M.%S.%f', # '10/25/06 14.30.59.000200'
|
||||
'%m/%d/%y %H.%M', # '10/25/06 14.30'
|
||||
'%m/%d/%Y %H.%M.%S', # '25/10/2009 14.30.59'
|
||||
'%m/%d/%Y %H.%M.%S.%f', # '25/10/2009 14.30.59.000200'
|
||||
'%m/%d/%Y %H.%M', # '25/10/2009 14.30'
|
||||
"%d-%m-%Y %H.%M.%S", # '25-10-2009 14.30.59'
|
||||
"%d-%m-%Y %H.%M.%S.%f", # '25-10-2009 14.30.59.000200'
|
||||
"%d-%m-%Y %H.%M", # '25-10-2009 14.30'
|
||||
"%d-%m-%y %H.%M.%S", # '25-10-09' 14.30.59'
|
||||
"%d-%m-%y %H.%M.%S.%f", # '25-10-09' 14.30.59.000200'
|
||||
"%d-%m-%y %H.%M", # '25-10-09' 14.30'
|
||||
"%m/%d/%y %H.%M.%S", # '10/25/06 14.30.59'
|
||||
"%m/%d/%y %H.%M.%S.%f", # '10/25/06 14.30.59.000200'
|
||||
"%m/%d/%y %H.%M", # '10/25/06 14.30'
|
||||
"%m/%d/%Y %H.%M.%S", # '25/10/2009 14.30.59'
|
||||
"%m/%d/%Y %H.%M.%S.%f", # '25/10/2009 14.30.59.000200'
|
||||
"%m/%d/%Y %H.%M", # '25/10/2009 14.30'
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,31 +2,31 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'P'
|
||||
DATETIME_FORMAT = 'j F Y P'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "P"
|
||||
DATETIME_FORMAT = "j F Y P"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATE_FORMAT = "j. F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
# DATETIME_FORMAT =
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'j.n.Y'
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "j.n.Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATE_FORMAT = 'j.n.Y'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,42 +2,42 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd F Y' # 25 Ottobre 2006
|
||||
TIME_FORMAT = 'H:i' # 14:30
|
||||
DATETIME_FORMAT = 'l d F Y H:i' # Mercoledì 25 Ottobre 2006 14:30
|
||||
YEAR_MONTH_FORMAT = 'F Y' # Ottobre 2006
|
||||
MONTH_DAY_FORMAT = 'j F' # 25 Ottobre
|
||||
SHORT_DATE_FORMAT = 'd/m/Y' # 25/12/2009
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i' # 25/10/2009 14:30
|
||||
DATE_FORMAT = "d F Y" # 25 Ottobre 2006
|
||||
TIME_FORMAT = "H:i" # 14:30
|
||||
DATETIME_FORMAT = "l d F Y H:i" # Mercoledì 25 Ottobre 2006 14:30
|
||||
YEAR_MONTH_FORMAT = "F Y" # Ottobre 2006
|
||||
MONTH_DAY_FORMAT = "j F" # 25 Ottobre
|
||||
SHORT_DATE_FORMAT = "d/m/Y" # 25/12/2009
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i" # 25/10/2009 14:30
|
||||
FIRST_DAY_OF_WEEK = 1 # Lunedì
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%Y/%m/%d', # '2006/10/25'
|
||||
'%d-%m-%Y', # '25-10-2006'
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d-%m-%y', # '25-10-06'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%Y/%m/%d", # '2006/10/25'
|
||||
"%d-%m-%Y", # '25-10-2006'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%d-%m-%y", # '25-10-06'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d-%m-%Y %H:%M:%S', # '25-10-2006 14:30:59'
|
||||
'%d-%m-%Y %H:%M:%S.%f', # '25-10-2006 14:30:59.000200'
|
||||
'%d-%m-%Y %H:%M', # '25-10-2006 14:30'
|
||||
'%d-%m-%y %H:%M:%S', # '25-10-06 14:30:59'
|
||||
'%d-%m-%y %H:%M:%S.%f', # '25-10-06 14:30:59.000200'
|
||||
'%d-%m-%y %H:%M', # '25-10-06 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
|
||||
"%d/%m/%y %H:%M", # '25/10/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d-%m-%Y %H:%M:%S", # '25-10-2006 14:30:59'
|
||||
"%d-%m-%Y %H:%M:%S.%f", # '25-10-2006 14:30:59.000200'
|
||||
"%d-%m-%Y %H:%M", # '25-10-2006 14:30'
|
||||
"%d-%m-%y %H:%M:%S", # '25-10-06 14:30:59'
|
||||
"%d-%m-%y %H:%M:%S.%f", # '25-10-06 14:30:59.000200'
|
||||
"%d-%m-%y %H:%M", # '25-10-06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'Y年n月j日'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'Y年n月j日G:i'
|
||||
YEAR_MONTH_FORMAT = 'Y年n月'
|
||||
MONTH_DAY_FORMAT = 'n月j日'
|
||||
SHORT_DATE_FORMAT = 'Y/m/d'
|
||||
SHORT_DATETIME_FORMAT = 'Y/m/d G:i'
|
||||
DATE_FORMAT = "Y年n月j日"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "Y年n月j日G:i"
|
||||
YEAR_MONTH_FORMAT = "Y年n月"
|
||||
MONTH_DAY_FORMAT = "n月j日"
|
||||
SHORT_DATE_FORMAT = "Y/m/d"
|
||||
SHORT_DATETIME_FORMAT = "Y/m/d G:i"
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATETIME_FORMAT = 'Y/m/d G:i'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,24 +2,24 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'l, j F, Y'
|
||||
TIME_FORMAT = 'h:i a'
|
||||
DATETIME_FORMAT = 'j F, Y h:i a'
|
||||
YEAR_MONTH_FORMAT = 'F, Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j.M.Y'
|
||||
SHORT_DATETIME_FORMAT = 'j.M.Y H:i'
|
||||
DATE_FORMAT = "l, j F, Y"
|
||||
TIME_FORMAT = "h:i a"
|
||||
DATETIME_FORMAT = "j F, Y h:i a"
|
||||
YEAR_MONTH_FORMAT = "F, Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j.M.Y"
|
||||
SHORT_DATETIME_FORMAT = "j.M.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # (Monday)
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%m/%d/%Y', # '10/25/2006'
|
||||
'%m/%d/%y', # '10/25/06'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%m/%d/%Y", # '10/25/2006'
|
||||
"%m/%d/%y", # '10/25/06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
# "%d %b %Y", # '25 Oct 2006'
|
||||
# "%d %b, %Y", # '25 Oct, 2006'
|
||||
# "%d %b. %Y", # '25 Oct. 2006'
|
||||
|
@ -27,22 +27,22 @@ DATE_INPUT_FORMATS = [
|
|||
# "%d %B, %Y", # '25 October, 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
|
||||
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
|
||||
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
|
||||
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
|
||||
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
|
||||
'%m/%d/%y %H:%M', # '10/25/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59'
|
||||
"%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200'
|
||||
"%m/%d/%Y %H:%M", # '10/25/2006 14:30'
|
||||
"%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59'
|
||||
"%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200'
|
||||
"%m/%d/%y %H:%M", # '10/25/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = " "
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j ខែ F ឆ្នាំ Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j ខែ F ឆ្នាំ Y, G:i'
|
||||
DATE_FORMAT = "j ខែ F ឆ្នាំ Y"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j ខែ F ឆ្នាំ Y, G:i"
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M Y'
|
||||
SHORT_DATETIME_FORMAT = 'j M Y, G:i'
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j M Y"
|
||||
SHORT_DATETIME_FORMAT = "j M Y, G:i"
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATETIME_FORMAT = 'j M Y, G:i'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'h:i A'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "h:i A"
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M Y'
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j M Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
|
|
@ -2,22 +2,22 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'Y년 n월 j일'
|
||||
TIME_FORMAT = 'A g:i'
|
||||
DATETIME_FORMAT = 'Y년 n월 j일 g:i A'
|
||||
YEAR_MONTH_FORMAT = 'Y년 n월'
|
||||
MONTH_DAY_FORMAT = 'n월 j일'
|
||||
SHORT_DATE_FORMAT = 'Y-n-j.'
|
||||
SHORT_DATETIME_FORMAT = 'Y-n-j H:i'
|
||||
DATE_FORMAT = "Y년 n월 j일"
|
||||
TIME_FORMAT = "A g:i"
|
||||
DATETIME_FORMAT = "Y년 n월 j일 g:i A"
|
||||
YEAR_MONTH_FORMAT = "Y년 n월"
|
||||
MONTH_DAY_FORMAT = "n월 j일"
|
||||
SHORT_DATE_FORMAT = "Y-n-j."
|
||||
SHORT_DATETIME_FORMAT = "Y-n-j H:i"
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%m/%d/%Y', # '10/25/2006'
|
||||
'%m/%d/%y', # '10/25/06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%m/%d/%Y", # '10/25/2006'
|
||||
"%m/%d/%y", # '10/25/06'
|
||||
# "%b %d %Y", # 'Oct 25 2006'
|
||||
# "%b %d, %Y", # 'Oct 25, 2006'
|
||||
# "%d %b %Y", # '25 Oct 2006'
|
||||
|
@ -26,30 +26,29 @@ DATE_INPUT_FORMATS = [
|
|||
# "%B %d, %Y", #'October 25, 2006'
|
||||
# "%d %B %Y", # '25 October 2006'
|
||||
# "%d %B, %Y", # '25 October, 2006'
|
||||
'%Y년 %m월 %d일', # '2006년 10월 25일', with localized suffix.
|
||||
"%Y년 %m월 %d일", # '2006년 10월 25일', with localized suffix.
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
'%H:%M:%S.%f', # '14:30:59.000200'
|
||||
'%H:%M', # '14:30'
|
||||
'%H시 %M분 %S초', # '14시 30분 59초'
|
||||
'%H시 %M분', # '14시 30분'
|
||||
"%H:%M:%S", # '14:30:59'
|
||||
"%H:%M:%S.%f", # '14:30:59.000200'
|
||||
"%H:%M", # '14:30'
|
||||
"%H시 %M분 %S초", # '14시 30분 59초'
|
||||
"%H시 %M분", # '14시 30분'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
|
||||
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
|
||||
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
|
||||
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
|
||||
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
|
||||
'%m/%d/%y %H:%M', # '10/25/06 14:30'
|
||||
|
||||
'%Y년 %m월 %d일 %H시 %M분 %S초', # '2006년 10월 25일 14시 30분 59초'
|
||||
'%Y년 %m월 %d일 %H시 %M분', # '2006년 10월 25일 14시 30분'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59'
|
||||
"%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200'
|
||||
"%m/%d/%Y %H:%M", # '10/25/2006 14:30'
|
||||
"%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59'
|
||||
"%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200'
|
||||
"%m/%d/%y %H:%M", # '10/25/06 14:30'
|
||||
"%Y년 %m월 %d일 %H시 %M분 %S초", # '2006년 10월 25일 14시 30분 59초'
|
||||
"%Y년 %m월 %d일 %H시 %M분", # '2006년 10월 25일 14시 30분'
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,31 +2,31 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j E Y ж.'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j E Y ж. G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y ж.'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j E Y ж."
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j E Y ж. G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y ж."
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Дүйшөмбү, Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,44 +2,44 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'Y \m. E j \d.'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'Y \m. E j \d., H:i'
|
||||
YEAR_MONTH_FORMAT = r'Y \m. F'
|
||||
MONTH_DAY_FORMAT = r'E j \d.'
|
||||
SHORT_DATE_FORMAT = 'Y-m-d'
|
||||
SHORT_DATETIME_FORMAT = 'Y-m-d H:i'
|
||||
DATE_FORMAT = r"Y \m. E j \d."
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"Y \m. E j \d., H:i"
|
||||
YEAR_MONTH_FORMAT = r"Y \m. F"
|
||||
MONTH_DAY_FORMAT = r"E j \d."
|
||||
SHORT_DATE_FORMAT = "Y-m-d"
|
||||
SHORT_DATETIME_FORMAT = "Y-m-d H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
'%H:%M:%S.%f', # '14:30:59.000200'
|
||||
'%H:%M', # '14:30'
|
||||
'%H.%M.%S', # '14.30.59'
|
||||
'%H.%M.%S.%f', # '14.30.59.000200'
|
||||
'%H.%M', # '14.30'
|
||||
"%H:%M:%S", # '14:30:59'
|
||||
"%H:%M:%S.%f", # '14:30:59.000200'
|
||||
"%H:%M", # '14:30'
|
||||
"%H.%M.%S", # '14.30.59'
|
||||
"%H.%M.%S.%f", # '14.30.59.000200'
|
||||
"%H.%M", # '14.30'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d.%m.%y %H.%M.%S', # '25.10.06 14.30.59'
|
||||
'%d.%m.%y %H.%M.%S.%f', # '25.10.06 14.30.59.000200'
|
||||
'%d.%m.%y %H.%M', # '25.10.06 14.30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%d.%m.%y %H.%M.%S", # '25.10.06 14.30.59'
|
||||
"%d.%m.%y %H.%M.%S.%f", # '25.10.06 14.30.59.000200'
|
||||
"%d.%m.%y %H.%M", # '25.10.06 14.30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,45 +2,45 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'Y. \g\a\d\a j. F'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'Y. \g\a\d\a j. F, H:i'
|
||||
YEAR_MONTH_FORMAT = r'Y. \g. F'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = r'j.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'j.m.Y H:i'
|
||||
DATE_FORMAT = r"Y. \g\a\d\a j. F"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"Y. \g\a\d\a j. F, H:i"
|
||||
YEAR_MONTH_FORMAT = r"Y. \g. F"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = r"j.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "j.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
'%H:%M:%S.%f', # '14:30:59.000200'
|
||||
'%H:%M', # '14:30'
|
||||
'%H.%M.%S', # '14.30.59'
|
||||
'%H.%M.%S.%f', # '14.30.59.000200'
|
||||
'%H.%M', # '14.30'
|
||||
"%H:%M:%S", # '14:30:59'
|
||||
"%H:%M:%S.%f", # '14:30:59.000200'
|
||||
"%H:%M", # '14:30'
|
||||
"%H.%M.%S", # '14.30.59'
|
||||
"%H.%M.%S.%f", # '14.30.59.000200'
|
||||
"%H.%M", # '14.30'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d.%m.%y %H.%M.%S', # '25.10.06 14.30.59'
|
||||
'%d.%m.%y %H.%M.%S.%f', # '25.10.06 14.30.59.000200'
|
||||
'%d.%m.%y %H.%M', # '25.10.06 14.30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%d.%m.%y %H.%M.%S", # '25.10.06 14.30.59'
|
||||
"%d.%m.%y %H.%M.%S.%f", # '25.10.06 14.30.59.000200'
|
||||
"%d.%m.%y %H.%M", # '25.10.06 14.30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = ' ' # Non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = " " # Non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,39 +2,39 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'j.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'j.m.Y H:i'
|
||||
DATE_FORMAT = "d F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "j.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "j.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
'%d. %m. %Y', # '25. 10. 2006'
|
||||
'%d. %m. %y', # '25. 10. 06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
"%d. %m. %Y", # '25. 10. 2006'
|
||||
"%d. %m. %y", # '25. 10. 06'
|
||||
]
|
||||
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d. %m. %Y %H:%M:%S', # '25. 10. 2006 14:30:59'
|
||||
'%d. %m. %Y %H:%M:%S.%f', # '25. 10. 2006 14:30:59.000200'
|
||||
'%d. %m. %Y %H:%M', # '25. 10. 2006 14:30'
|
||||
'%d. %m. %y %H:%M:%S', # '25. 10. 06 14:30:59'
|
||||
'%d. %m. %y %H:%M:%S.%f', # '25. 10. 06 14:30:59.000200'
|
||||
'%d. %m. %y %H:%M', # '25. 10. 06 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%d. %m. %Y %H:%M:%S", # '25. 10. 2006 14:30:59'
|
||||
"%d. %m. %Y %H:%M:%S.%f", # '25. 10. 2006 14:30:59.000200'
|
||||
"%d. %m. %Y %H:%M", # '25. 10. 2006 14:30'
|
||||
"%d. %m. %y %H:%M:%S", # '25. 10. 06 14:30:59'
|
||||
"%d. %m. %y %H:%M:%S.%f", # '25. 10. 06 14:30:59.000200'
|
||||
"%d. %m. %y %H:%M", # '25. 10. 06 14:30'
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,22 +2,22 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'N j, Y'
|
||||
TIME_FORMAT = 'P'
|
||||
DATETIME_FORMAT = 'N j, Y, P'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'F j'
|
||||
SHORT_DATE_FORMAT = 'm/d/Y'
|
||||
SHORT_DATETIME_FORMAT = 'm/d/Y P'
|
||||
DATE_FORMAT = "N j, Y"
|
||||
TIME_FORMAT = "P"
|
||||
DATETIME_FORMAT = "N j, Y, P"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "F j"
|
||||
SHORT_DATE_FORMAT = "m/d/Y"
|
||||
SHORT_DATETIME_FORMAT = "m/d/Y P"
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%m/%d/%Y', # '10/25/2006'
|
||||
'%m/%d/%y', # '10/25/06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%m/%d/%Y", # '10/25/2006'
|
||||
"%m/%d/%y", # '10/25/06'
|
||||
# "%b %d %Y", # 'Oct 25 2006'
|
||||
# "%b %d, %Y", # 'Oct 25, 2006'
|
||||
# "%d %b %Y", # '25 Oct 2006'
|
||||
|
@ -28,16 +28,16 @@ DATE_INPUT_FORMATS = [
|
|||
# "%d %B, %Y", # '25 October, 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
|
||||
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
|
||||
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
|
||||
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
|
||||
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
|
||||
'%m/%d/%y %H:%M', # '10/25/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59'
|
||||
"%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200'
|
||||
"%m/%d/%Y %H:%M", # '10/25/2006 14:30'
|
||||
"%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59'
|
||||
"%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200'
|
||||
"%m/%d/%y %H:%M", # '10/25/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd F Y'
|
||||
TIME_FORMAT = 'g:i A'
|
||||
DATE_FORMAT = "d F Y"
|
||||
TIME_FORMAT = "g:i A"
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
# MONTH_DAY_FORMAT =
|
||||
SHORT_DATE_FORMAT = 'j M Y'
|
||||
SHORT_DATE_FORMAT = "j M Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
|
|
@ -2,37 +2,37 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j M Y' # '25 Oct 2006'
|
||||
TIME_FORMAT = 'P' # '2:30 p.m.'
|
||||
DATETIME_FORMAT = 'j M Y, P' # '25 Oct 2006, 2:30 p.m.'
|
||||
YEAR_MONTH_FORMAT = 'F Y' # 'October 2006'
|
||||
MONTH_DAY_FORMAT = 'j F' # '25 October'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y' # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y P' # '25/10/2006 2:30 p.m.'
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
DATE_FORMAT = "j M Y" # '25 Oct 2006'
|
||||
TIME_FORMAT = "P" # '2:30 p.m.'
|
||||
DATETIME_FORMAT = "j M Y, P" # '25 Oct 2006, 2:30 p.m.'
|
||||
YEAR_MONTH_FORMAT = "F Y" # 'October 2006'
|
||||
MONTH_DAY_FORMAT = "j F" # '25 October'
|
||||
SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006'
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y P" # '25/10/2006 2:30 p.m.'
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
'%d %b %Y', # '25 Oct 2006'
|
||||
'%d %b, %Y', # '25 Oct, 2006'
|
||||
'%d %B %Y', # '25 October 2006'
|
||||
'%d %B, %Y', # '25 October, 2006'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
"%d %b %Y", # '25 Oct 2006'
|
||||
"%d %b, %Y", # '25 Oct, 2006'
|
||||
"%d %B %Y", # '25 October 2006'
|
||||
"%d %B, %Y", # '25 October, 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
|
||||
"%d/%m/%y %H:%M", # '25/10/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,22 +2,22 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j. F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
# "%d. %b %Y", # '25. okt 2006'
|
||||
# "%d %b %Y", # '25 okt 2006'
|
||||
# "%d. %b. %Y", # '25. okt. 2006'
|
||||
|
@ -26,16 +26,16 @@ DATE_INPUT_FORMATS = [
|
|||
# "%d %B %Y", # '25 oktober 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,23 +2,23 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y' # '20 januari 2009'
|
||||
TIME_FORMAT = 'H:i' # '15:23'
|
||||
DATETIME_FORMAT = 'j F Y H:i' # '20 januari 2009 15:23'
|
||||
YEAR_MONTH_FORMAT = 'F Y' # 'januari 2009'
|
||||
MONTH_DAY_FORMAT = 'j F' # '20 januari'
|
||||
SHORT_DATE_FORMAT = 'j-n-Y' # '20-1-2009'
|
||||
SHORT_DATETIME_FORMAT = 'j-n-Y H:i' # '20-1-2009 15:23'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday (in Dutch 'maandag')
|
||||
DATE_FORMAT = "j F Y" # '20 januari 2009'
|
||||
TIME_FORMAT = "H:i" # '15:23'
|
||||
DATETIME_FORMAT = "j F Y H:i" # '20 januari 2009 15:23'
|
||||
YEAR_MONTH_FORMAT = "F Y" # 'januari 2009'
|
||||
MONTH_DAY_FORMAT = "j F" # '20 januari'
|
||||
SHORT_DATE_FORMAT = "j-n-Y" # '20-1-2009'
|
||||
SHORT_DATETIME_FORMAT = "j-n-Y H:i" # '20-1-2009 15:23'
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday (in Dutch 'maandag')
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d-%m-%Y', # '20-01-2009'
|
||||
'%d-%m-%y', # '20-01-09'
|
||||
'%d/%m/%Y', # '20/01/2009'
|
||||
'%d/%m/%y', # '20/01/09'
|
||||
'%Y/%m/%d', # '2009/01/20'
|
||||
"%d-%m-%Y", # '20-01-2009'
|
||||
"%d-%m-%y", # '20-01-09'
|
||||
"%d/%m/%Y", # '20/01/2009'
|
||||
"%d/%m/%y", # '20/01/09'
|
||||
"%Y/%m/%d", # '2009/01/20'
|
||||
# "%d %b %Y", # '20 jan 2009'
|
||||
# "%d %b %y", # '20 jan 09'
|
||||
# "%d %B %Y", # '20 januari 2009'
|
||||
|
@ -26,67 +26,67 @@ DATE_INPUT_FORMATS = [
|
|||
]
|
||||
# Kept ISO formats as one is in first position
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '15:23:35'
|
||||
'%H:%M:%S.%f', # '15:23:35.000200'
|
||||
'%H.%M:%S', # '15.23:35'
|
||||
'%H.%M:%S.%f', # '15.23:35.000200'
|
||||
'%H.%M', # '15.23'
|
||||
'%H:%M', # '15:23'
|
||||
"%H:%M:%S", # '15:23:35'
|
||||
"%H:%M:%S.%f", # '15:23:35.000200'
|
||||
"%H.%M:%S", # '15.23:35'
|
||||
"%H.%M:%S.%f", # '15.23:35.000200'
|
||||
"%H.%M", # '15.23'
|
||||
"%H:%M", # '15:23'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
# With time in %H:%M:%S :
|
||||
'%d-%m-%Y %H:%M:%S', # '20-01-2009 15:23:35'
|
||||
'%d-%m-%y %H:%M:%S', # '20-01-09 15:23:35'
|
||||
'%Y-%m-%d %H:%M:%S', # '2009-01-20 15:23:35'
|
||||
'%d/%m/%Y %H:%M:%S', # '20/01/2009 15:23:35'
|
||||
'%d/%m/%y %H:%M:%S', # '20/01/09 15:23:35'
|
||||
'%Y/%m/%d %H:%M:%S', # '2009/01/20 15:23:35'
|
||||
"%d-%m-%Y %H:%M:%S", # '20-01-2009 15:23:35'
|
||||
"%d-%m-%y %H:%M:%S", # '20-01-09 15:23:35'
|
||||
"%Y-%m-%d %H:%M:%S", # '2009-01-20 15:23:35'
|
||||
"%d/%m/%Y %H:%M:%S", # '20/01/2009 15:23:35'
|
||||
"%d/%m/%y %H:%M:%S", # '20/01/09 15:23:35'
|
||||
"%Y/%m/%d %H:%M:%S", # '2009/01/20 15:23:35'
|
||||
# "%d %b %Y %H:%M:%S", # '20 jan 2009 15:23:35'
|
||||
# "%d %b %y %H:%M:%S", # '20 jan 09 15:23:35'
|
||||
# "%d %B %Y %H:%M:%S", # '20 januari 2009 15:23:35'
|
||||
# "%d %B %y %H:%M:%S", # '20 januari 2009 15:23:35'
|
||||
# With time in %H:%M:%S.%f :
|
||||
'%d-%m-%Y %H:%M:%S.%f', # '20-01-2009 15:23:35.000200'
|
||||
'%d-%m-%y %H:%M:%S.%f', # '20-01-09 15:23:35.000200'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2009-01-20 15:23:35.000200'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '20/01/2009 15:23:35.000200'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '20/01/09 15:23:35.000200'
|
||||
'%Y/%m/%d %H:%M:%S.%f', # '2009/01/20 15:23:35.000200'
|
||||
"%d-%m-%Y %H:%M:%S.%f", # '20-01-2009 15:23:35.000200'
|
||||
"%d-%m-%y %H:%M:%S.%f", # '20-01-09 15:23:35.000200'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2009-01-20 15:23:35.000200'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '20/01/2009 15:23:35.000200'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '20/01/09 15:23:35.000200'
|
||||
"%Y/%m/%d %H:%M:%S.%f", # '2009/01/20 15:23:35.000200'
|
||||
# With time in %H.%M:%S :
|
||||
'%d-%m-%Y %H.%M:%S', # '20-01-2009 15.23:35'
|
||||
'%d-%m-%y %H.%M:%S', # '20-01-09 15.23:35'
|
||||
'%d/%m/%Y %H.%M:%S', # '20/01/2009 15.23:35'
|
||||
'%d/%m/%y %H.%M:%S', # '20/01/09 15.23:35'
|
||||
"%d-%m-%Y %H.%M:%S", # '20-01-2009 15.23:35'
|
||||
"%d-%m-%y %H.%M:%S", # '20-01-09 15.23:35'
|
||||
"%d/%m/%Y %H.%M:%S", # '20/01/2009 15.23:35'
|
||||
"%d/%m/%y %H.%M:%S", # '20/01/09 15.23:35'
|
||||
# "%d %b %Y %H.%M:%S", # '20 jan 2009 15.23:35'
|
||||
# "%d %b %y %H.%M:%S", # '20 jan 09 15.23:35'
|
||||
# "%d %B %Y %H.%M:%S", # '20 januari 2009 15.23:35'
|
||||
# "%d %B %y %H.%M:%S", # '20 januari 2009 15.23:35'
|
||||
# With time in %H.%M:%S.%f :
|
||||
'%d-%m-%Y %H.%M:%S.%f', # '20-01-2009 15.23:35.000200'
|
||||
'%d-%m-%y %H.%M:%S.%f', # '20-01-09 15.23:35.000200'
|
||||
'%d/%m/%Y %H.%M:%S.%f', # '20/01/2009 15.23:35.000200'
|
||||
'%d/%m/%y %H.%M:%S.%f', # '20/01/09 15.23:35.000200'
|
||||
"%d-%m-%Y %H.%M:%S.%f", # '20-01-2009 15.23:35.000200'
|
||||
"%d-%m-%y %H.%M:%S.%f", # '20-01-09 15.23:35.000200'
|
||||
"%d/%m/%Y %H.%M:%S.%f", # '20/01/2009 15.23:35.000200'
|
||||
"%d/%m/%y %H.%M:%S.%f", # '20/01/09 15.23:35.000200'
|
||||
# With time in %H:%M :
|
||||
'%d-%m-%Y %H:%M', # '20-01-2009 15:23'
|
||||
'%d-%m-%y %H:%M', # '20-01-09 15:23'
|
||||
'%Y-%m-%d %H:%M', # '2009-01-20 15:23'
|
||||
'%d/%m/%Y %H:%M', # '20/01/2009 15:23'
|
||||
'%d/%m/%y %H:%M', # '20/01/09 15:23'
|
||||
'%Y/%m/%d %H:%M', # '2009/01/20 15:23'
|
||||
"%d-%m-%Y %H:%M", # '20-01-2009 15:23'
|
||||
"%d-%m-%y %H:%M", # '20-01-09 15:23'
|
||||
"%Y-%m-%d %H:%M", # '2009-01-20 15:23'
|
||||
"%d/%m/%Y %H:%M", # '20/01/2009 15:23'
|
||||
"%d/%m/%y %H:%M", # '20/01/09 15:23'
|
||||
"%Y/%m/%d %H:%M", # '2009/01/20 15:23'
|
||||
# "%d %b %Y %H:%M", # '20 jan 2009 15:23'
|
||||
# "%d %b %y %H:%M", # '20 jan 09 15:23'
|
||||
# "%d %B %Y %H:%M", # '20 januari 2009 15:23'
|
||||
# "%d %B %y %H:%M", # '20 januari 2009 15:23'
|
||||
# With time in %H.%M :
|
||||
'%d-%m-%Y %H.%M', # '20-01-2009 15.23'
|
||||
'%d-%m-%y %H.%M', # '20-01-09 15.23'
|
||||
'%d/%m/%Y %H.%M', # '20/01/2009 15.23'
|
||||
'%d/%m/%y %H.%M', # '20/01/09 15.23'
|
||||
"%d-%m-%Y %H.%M", # '20-01-2009 15.23'
|
||||
"%d-%m-%y %H.%M", # '20-01-09 15.23'
|
||||
"%d/%m/%Y %H.%M", # '20/01/2009 15.23'
|
||||
"%d/%m/%y %H.%M", # '20/01/09 15.23'
|
||||
# "%d %b %Y %H.%M", # '20 jan 2009 15.23'
|
||||
# "%d %b %y %H.%M", # '20 jan 09 15.23'
|
||||
# "%d %B %Y %H.%M", # '20 januari 2009 15.23'
|
||||
# "%d %B %y %H.%M", # '20 januari 2009 15.23'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,22 +2,22 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j. F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
# "%d. %b %Y", # '25. okt 2006'
|
||||
# "%d %b %Y", # '25 okt 2006'
|
||||
# "%d. %b. %Y", # '25. okt. 2006'
|
||||
|
@ -26,16 +26,16 @@ DATE_INPUT_FORMATS = [
|
|||
# "%d %B %Y", # '25 oktober 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j E Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j E Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j E'
|
||||
SHORT_DATE_FORMAT = 'd-m-Y'
|
||||
SHORT_DATETIME_FORMAT = 'd-m-Y H:i'
|
||||
DATE_FORMAT = "j E Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j E Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j E"
|
||||
SHORT_DATE_FORMAT = "d-m-Y"
|
||||
SHORT_DATETIME_FORMAT = "d-m-Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
'%y-%m-%d', # '06-10-25'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
"%y-%m-%d", # '06-10-25'
|
||||
# "%d. %B %Y", # '25. października 2006'
|
||||
# "%d. %b. %Y", # '25. paź. 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = ' '
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = " "
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,38 +2,38 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y à\s H:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y à\s H:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
# "%d de %b de %Y", # '25 de Out de 2006'
|
||||
# "%d de %b, %Y", # '25 Out, 2006'
|
||||
# "%d de %B de %Y", # '25 de Outubro de 2006'
|
||||
# "%d de %B, %Y", # '25 de Outubro, 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
|
||||
"%d/%m/%y %H:%M", # '25/10/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,33 +2,33 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j \d\e F \d\e Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'j \d\e F \d\e Y à\s H:i'
|
||||
YEAR_MONTH_FORMAT = r'F \d\e Y'
|
||||
MONTH_DAY_FORMAT = r'j \d\e F'
|
||||
SHORT_DATE_FORMAT = 'd/m/Y'
|
||||
SHORT_DATETIME_FORMAT = 'd/m/Y H:i'
|
||||
DATE_FORMAT = r"j \d\e F \d\e Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"j \d\e F \d\e Y à\s H:i"
|
||||
YEAR_MONTH_FORMAT = r"F \d\e Y"
|
||||
MONTH_DAY_FORMAT = r"j \d\e F"
|
||||
SHORT_DATE_FORMAT = "d/m/Y"
|
||||
SHORT_DATETIME_FORMAT = "d/m/Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
# "%d de %b de %Y", # '24 de Out de 2006'
|
||||
# "%d de %b, %Y", # '25 Out, 2006'
|
||||
# "%d de %B de %Y", # '25 de Outubro de 2006'
|
||||
# "%d de %B, %Y", # '25 de Outubro, 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
'%d/%m/%y %H:%M:%S', # '25/10/06 14:30:59'
|
||||
'%d/%m/%y %H:%M:%S.%f', # '25/10/06 14:30:59.000200'
|
||||
'%d/%m/%y %H:%M', # '25/10/06 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
"%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
|
||||
"%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
|
||||
"%d/%m/%y %H:%M", # '25/10/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,34 +2,34 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j F Y, H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y, H:i'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j F Y, H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y, H:i"
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y',
|
||||
'%d.%b.%Y',
|
||||
'%d %B %Y',
|
||||
'%A, %d %B %Y',
|
||||
"%d.%m.%Y",
|
||||
"%d.%b.%Y",
|
||||
"%d %B %Y",
|
||||
"%A, %d %B %Y",
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M',
|
||||
'%H:%M:%S',
|
||||
'%H:%M:%S.%f',
|
||||
"%H:%M",
|
||||
"%H:%M:%S",
|
||||
"%H:%M:%S.%f",
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y, %H:%M',
|
||||
'%d.%m.%Y, %H:%M:%S',
|
||||
'%d.%B.%Y, %H:%M',
|
||||
'%d.%B.%Y, %H:%M:%S',
|
||||
"%d.%m.%Y, %H:%M",
|
||||
"%d.%m.%Y, %H:%M:%S",
|
||||
"%d.%B.%Y, %H:%M",
|
||||
"%d.%B.%Y, %H:%M:%S",
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j E Y г.'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j E Y г. G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y г.'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j E Y г."
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j E Y г. G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y г."
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j. F Y G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y G:i'
|
||||
DATE_FORMAT = "j. F Y"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j. F Y G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y G:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
'%y-%m-%d', # '06-10-25'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
"%y-%m-%d", # '06-10-25'
|
||||
# "%d. %B %Y", # '25. October 2006'
|
||||
# "%d. %b. %Y", # '25. Oct. 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,43 +2,43 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd. F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y. H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'j. M. Y'
|
||||
SHORT_DATETIME_FORMAT = 'j.n.Y. H:i'
|
||||
DATE_FORMAT = "d. F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y. H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "j. M. Y"
|
||||
SHORT_DATETIME_FORMAT = "j.n.Y. H:i"
|
||||
FIRST_DAY_OF_WEEK = 0
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
'%d-%m-%Y', # '25-10-2006'
|
||||
'%d. %m. %Y', # '25. 10. 2006'
|
||||
'%d. %m. %y', # '25. 10. 06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
"%d-%m-%Y", # '25-10-2006'
|
||||
"%d. %m. %Y", # '25. 10. 2006'
|
||||
"%d. %m. %y", # '25. 10. 06'
|
||||
]
|
||||
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d-%m-%Y %H:%M:%S', # '25-10-2006 14:30:59'
|
||||
'%d-%m-%Y %H:%M:%S.%f', # '25-10-2006 14:30:59.000200'
|
||||
'%d-%m-%Y %H:%M', # '25-10-2006 14:30'
|
||||
'%d. %m. %Y %H:%M:%S', # '25. 10. 2006 14:30:59'
|
||||
'%d. %m. %Y %H:%M:%S.%f', # '25. 10. 2006 14:30:59.000200'
|
||||
'%d. %m. %Y %H:%M', # '25. 10. 2006 14:30'
|
||||
'%d. %m. %y %H:%M:%S', # '25. 10. 06 14:30:59'
|
||||
'%d. %m. %y %H:%M:%S.%f', # '25. 10. 06 14:30:59.000200'
|
||||
'%d. %m. %y %H:%M', # '25. 10. 06 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%d-%m-%Y %H:%M:%S", # '25-10-2006 14:30:59'
|
||||
"%d-%m-%Y %H:%M:%S.%f", # '25-10-2006 14:30:59.000200'
|
||||
"%d-%m-%Y %H:%M", # '25-10-2006 14:30'
|
||||
"%d. %m. %Y %H:%M:%S", # '25. 10. 2006 14:30:59'
|
||||
"%d. %m. %Y %H:%M:%S.%f", # '25. 10. 2006 14:30:59.000200'
|
||||
"%d. %m. %Y %H:%M", # '25. 10. 2006 14:30'
|
||||
"%d. %m. %y %H:%M:%S", # '25. 10. 06 14:30:59'
|
||||
"%d. %m. %y %H:%M:%S.%f", # '25. 10. 06 14:30:59.000200'
|
||||
"%d. %m. %y %H:%M", # '25. 10. 06 14:30'
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd F Y'
|
||||
TIME_FORMAT = 'g.i.A'
|
||||
DATE_FORMAT = "d F Y"
|
||||
TIME_FORMAT = "g.i.A"
|
||||
# DATETIME_FORMAT =
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'Y-m-d'
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "Y-m-d"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATE_FORMAT = 'Y-m-d'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,22 +2,22 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y.'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y. H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y.'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'j.m.Y.'
|
||||
SHORT_DATETIME_FORMAT = 'j.m.Y. H:i'
|
||||
DATE_FORMAT = "j. F Y."
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y. H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y."
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "j.m.Y."
|
||||
SHORT_DATETIME_FORMAT = "j.m.Y. H:i"
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y.', # '25.10.2006.'
|
||||
'%d.%m.%y.', # '25.10.06.'
|
||||
'%d. %m. %Y.', # '25. 10. 2006.'
|
||||
'%d. %m. %y.', # '25. 10. 06.'
|
||||
"%d.%m.%Y.", # '25.10.2006.'
|
||||
"%d.%m.%y.", # '25.10.06.'
|
||||
"%d. %m. %Y.", # '25. 10. 2006.'
|
||||
"%d. %m. %y.", # '25. 10. 06.'
|
||||
# "%d. %b %y.", # '25. Oct 06.'
|
||||
# "%d. %B %y.", # '25. October 06.'
|
||||
# "%d. %b '%y.", # '25. Oct '06.'
|
||||
|
@ -26,19 +26,19 @@ DATE_INPUT_FORMATS = [
|
|||
# "%d. %B %Y.", # '25. October 2006.'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y. %H:%M:%S', # '25.10.2006. 14:30:59'
|
||||
'%d.%m.%Y. %H:%M:%S.%f', # '25.10.2006. 14:30:59.000200'
|
||||
'%d.%m.%Y. %H:%M', # '25.10.2006. 14:30'
|
||||
'%d.%m.%y. %H:%M:%S', # '25.10.06. 14:30:59'
|
||||
'%d.%m.%y. %H:%M:%S.%f', # '25.10.06. 14:30:59.000200'
|
||||
'%d.%m.%y. %H:%M', # '25.10.06. 14:30'
|
||||
'%d. %m. %Y. %H:%M:%S', # '25. 10. 2006. 14:30:59'
|
||||
'%d. %m. %Y. %H:%M:%S.%f', # '25. 10. 2006. 14:30:59.000200'
|
||||
'%d. %m. %Y. %H:%M', # '25. 10. 2006. 14:30'
|
||||
'%d. %m. %y. %H:%M:%S', # '25. 10. 06. 14:30:59'
|
||||
'%d. %m. %y. %H:%M:%S.%f', # '25. 10. 06. 14:30:59.000200'
|
||||
'%d. %m. %y. %H:%M', # '25. 10. 06. 14:30'
|
||||
"%d.%m.%Y. %H:%M:%S", # '25.10.2006. 14:30:59'
|
||||
"%d.%m.%Y. %H:%M:%S.%f", # '25.10.2006. 14:30:59.000200'
|
||||
"%d.%m.%Y. %H:%M", # '25.10.2006. 14:30'
|
||||
"%d.%m.%y. %H:%M:%S", # '25.10.06. 14:30:59'
|
||||
"%d.%m.%y. %H:%M:%S.%f", # '25.10.06. 14:30:59.000200'
|
||||
"%d.%m.%y. %H:%M", # '25.10.06. 14:30'
|
||||
"%d. %m. %Y. %H:%M:%S", # '25. 10. 2006. 14:30:59'
|
||||
"%d. %m. %Y. %H:%M:%S.%f", # '25. 10. 2006. 14:30:59.000200'
|
||||
"%d. %m. %Y. %H:%M", # '25. 10. 2006. 14:30'
|
||||
"%d. %m. %y. %H:%M:%S", # '25. 10. 06. 14:30:59'
|
||||
"%d. %m. %y. %H:%M:%S.%f", # '25. 10. 06. 14:30:59.000200'
|
||||
"%d. %m. %y. %H:%M", # '25. 10. 06. 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,22 +2,22 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j. F Y.'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j. F Y. H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y.'
|
||||
MONTH_DAY_FORMAT = 'j. F'
|
||||
SHORT_DATE_FORMAT = 'j.m.Y.'
|
||||
SHORT_DATETIME_FORMAT = 'j.m.Y. H:i'
|
||||
DATE_FORMAT = "j. F Y."
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j. F Y. H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y."
|
||||
MONTH_DAY_FORMAT = "j. F"
|
||||
SHORT_DATE_FORMAT = "j.m.Y."
|
||||
SHORT_DATETIME_FORMAT = "j.m.Y. H:i"
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y.', # '25.10.2006.'
|
||||
'%d.%m.%y.', # '25.10.06.'
|
||||
'%d. %m. %Y.', # '25. 10. 2006.'
|
||||
'%d. %m. %y.', # '25. 10. 06.'
|
||||
"%d.%m.%Y.", # '25.10.2006.'
|
||||
"%d.%m.%y.", # '25.10.06.'
|
||||
"%d. %m. %Y.", # '25. 10. 2006.'
|
||||
"%d. %m. %y.", # '25. 10. 06.'
|
||||
# "%d. %b %y.", # '25. Oct 06.'
|
||||
# "%d. %B %y.", # '25. October 06.'
|
||||
# "%d. %b '%y.", # '25. Oct '06.'
|
||||
|
@ -26,19 +26,19 @@ DATE_INPUT_FORMATS = [
|
|||
# "%d. %B %Y.", # '25. October 2006.'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y. %H:%M:%S', # '25.10.2006. 14:30:59'
|
||||
'%d.%m.%Y. %H:%M:%S.%f', # '25.10.2006. 14:30:59.000200'
|
||||
'%d.%m.%Y. %H:%M', # '25.10.2006. 14:30'
|
||||
'%d.%m.%y. %H:%M:%S', # '25.10.06. 14:30:59'
|
||||
'%d.%m.%y. %H:%M:%S.%f', # '25.10.06. 14:30:59.000200'
|
||||
'%d.%m.%y. %H:%M', # '25.10.06. 14:30'
|
||||
'%d. %m. %Y. %H:%M:%S', # '25. 10. 2006. 14:30:59'
|
||||
'%d. %m. %Y. %H:%M:%S.%f', # '25. 10. 2006. 14:30:59.000200'
|
||||
'%d. %m. %Y. %H:%M', # '25. 10. 2006. 14:30'
|
||||
'%d. %m. %y. %H:%M:%S', # '25. 10. 06. 14:30:59'
|
||||
'%d. %m. %y. %H:%M:%S.%f', # '25. 10. 06. 14:30:59.000200'
|
||||
'%d. %m. %y. %H:%M', # '25. 10. 06. 14:30'
|
||||
"%d.%m.%Y. %H:%M:%S", # '25.10.2006. 14:30:59'
|
||||
"%d.%m.%Y. %H:%M:%S.%f", # '25.10.2006. 14:30:59.000200'
|
||||
"%d.%m.%Y. %H:%M", # '25.10.2006. 14:30'
|
||||
"%d.%m.%y. %H:%M:%S", # '25.10.06. 14:30:59'
|
||||
"%d.%m.%y. %H:%M:%S.%f", # '25.10.06. 14:30:59.000200'
|
||||
"%d.%m.%y. %H:%M", # '25.10.06. 14:30'
|
||||
"%d. %m. %Y. %H:%M:%S", # '25. 10. 2006. 14:30:59'
|
||||
"%d. %m. %Y. %H:%M:%S.%f", # '25. 10. 2006. 14:30:59.000200'
|
||||
"%d. %m. %Y. %H:%M", # '25. 10. 2006. 14:30'
|
||||
"%d. %m. %y. %H:%M:%S", # '25. 10. 06. 14:30:59'
|
||||
"%d. %m. %y. %H:%M:%S.%f", # '25. 10. 06. 14:30:59.000200'
|
||||
"%d. %m. %y. %H:%M", # '25. 10. 06. 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,34 +2,34 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'j F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'Y-m-d'
|
||||
SHORT_DATETIME_FORMAT = 'Y-m-d H:i'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "j F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "Y-m-d"
|
||||
SHORT_DATETIME_FORMAT = "Y-m-d H:i"
|
||||
FIRST_DAY_OF_WEEK = 1
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
# Kept ISO formats as they are in first position
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y-%m-%d', # '2006-10-25'
|
||||
'%m/%d/%Y', # '10/25/2006'
|
||||
'%m/%d/%y', # '10/25/06'
|
||||
"%Y-%m-%d", # '2006-10-25'
|
||||
"%m/%d/%Y", # '10/25/2006'
|
||||
"%m/%d/%y", # '10/25/06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y-%m-%d %H:%M:%S', # '2006-10-25 14:30:59'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2006-10-25 14:30:59.000200'
|
||||
'%Y-%m-%d %H:%M', # '2006-10-25 14:30'
|
||||
'%m/%d/%Y %H:%M:%S', # '10/25/2006 14:30:59'
|
||||
'%m/%d/%Y %H:%M:%S.%f', # '10/25/2006 14:30:59.000200'
|
||||
'%m/%d/%Y %H:%M', # '10/25/2006 14:30'
|
||||
'%m/%d/%y %H:%M:%S', # '10/25/06 14:30:59'
|
||||
'%m/%d/%y %H:%M:%S.%f', # '10/25/06 14:30:59.000200'
|
||||
'%m/%d/%y %H:%M', # '10/25/06 14:30'
|
||||
"%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
|
||||
"%Y-%m-%d %H:%M", # '2006-10-25 14:30'
|
||||
"%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59'
|
||||
"%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200'
|
||||
"%m/%d/%Y %H:%M", # '10/25/2006 14:30'
|
||||
"%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59'
|
||||
"%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200'
|
||||
"%m/%d/%y %H:%M", # '10/25/06 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F, Y'
|
||||
TIME_FORMAT = 'g:i A'
|
||||
DATE_FORMAT = "j F, Y"
|
||||
TIME_FORMAT = "g:i A"
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M, Y'
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j M, Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'g:i A'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "g:i A"
|
||||
# DATETIME_FORMAT =
|
||||
# YEAR_MONTH_FORMAT =
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M Y'
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j M Y"
|
||||
# SHORT_DATETIME_FORMAT =
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
|
|
|
@ -2,31 +2,31 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j E Y г.'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j E Y г. G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y г.'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j E Y г."
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j E Y г. G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y г."
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,32 +2,32 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j F Y'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j F Y, G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'j M Y'
|
||||
SHORT_DATETIME_FORMAT = 'j M Y, G:i'
|
||||
DATE_FORMAT = "j F Y"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j F Y, G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "j M Y"
|
||||
SHORT_DATETIME_FORMAT = "j M Y, G:i"
|
||||
FIRST_DAY_OF_WEEK = 0 # Sunday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # 25/10/2006
|
||||
'%d %b %Y', # 25 ต.ค. 2006
|
||||
'%d %B %Y', # 25 ตุลาคม 2006
|
||||
"%d/%m/%Y", # 25/10/2006
|
||||
"%d %b %Y", # 25 ต.ค. 2006
|
||||
"%d %B %Y", # 25 ตุลาคม 2006
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # 14:30:59
|
||||
'%H:%M:%S.%f', # 14:30:59.000200
|
||||
'%H:%M', # 14:30
|
||||
"%H:%M:%S", # 14:30:59
|
||||
"%H:%M:%S.%f", # 14:30:59.000200
|
||||
"%H:%M", # 14:30
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S', # 25/10/2006 14:30:59
|
||||
'%d/%m/%Y %H:%M:%S.%f', # 25/10/2006 14:30:59.000200
|
||||
'%d/%m/%Y %H:%M', # 25/10/2006 14:30
|
||||
"%d/%m/%Y %H:%M:%S", # 25/10/2006 14:30:59
|
||||
"%d/%m/%Y %H:%M:%S.%f", # 25/10/2006 14:30:59.000200
|
||||
"%d/%m/%Y %H:%M", # 25/10/2006 14:30
|
||||
]
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ','
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ","
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,31 +2,31 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'j E Y г.'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = 'j E Y г. G:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y г.'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "j E Y г."
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = "j E Y г. G:i"
|
||||
YEAR_MONTH_FORMAT = "F Y г."
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d.%m.%y %H:%M:%S', # '25.10.06 14:30:59'
|
||||
'%d.%m.%y %H:%M:%S.%f', # '25.10.06 14:30:59.000200'
|
||||
'%d.%m.%y %H:%M', # '25.10.06 14:30'
|
||||
'%d.%m.%y', # '25.10.06'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
|
||||
"%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
|
||||
"%d.%m.%y %H:%M", # '25.10.06 14:30'
|
||||
"%d.%m.%y", # '25.10.06'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd F Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'd F Y H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'd F'
|
||||
SHORT_DATE_FORMAT = 'd M Y'
|
||||
SHORT_DATETIME_FORMAT = 'd M Y H:i'
|
||||
DATE_FORMAT = "d F Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "d F Y H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "d F"
|
||||
SHORT_DATE_FORMAT = "d M Y"
|
||||
SHORT_DATETIME_FORMAT = "d M Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Pazartesi
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d/%m/%Y', # '25/10/2006'
|
||||
'%d/%m/%y', # '25/10/06'
|
||||
'%y-%m-%d', # '06-10-25'
|
||||
"%d/%m/%Y", # '25/10/2006'
|
||||
"%d/%m/%y", # '25/10/06'
|
||||
"%y-%m-%d", # '06-10-25'
|
||||
# "%d %B %Y", # '25 Ekim 2006'
|
||||
# "%d %b. %Y", # '25 Eki. 2006'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d/%m/%Y %H:%M:%S', # '25/10/2006 14:30:59'
|
||||
'%d/%m/%Y %H:%M:%S.%f', # '25/10/2006 14:30:59.000200'
|
||||
'%d/%m/%Y %H:%M', # '25/10/2006 14:30'
|
||||
"%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
|
||||
"%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
|
||||
"%d/%m/%Y %H:%M", # '25/10/2006 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,34 +2,34 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'd E Y р.'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = 'd E Y р. H:i'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'd F'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = "d E Y р."
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = "d E Y р. H:i"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "d F"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d %B %Y', # '25 October 2006'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d %B %Y", # '25 October 2006'
|
||||
]
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M:%S', # '14:30:59'
|
||||
'%H:%M:%S.%f', # '14:30:59.000200'
|
||||
'%H:%M', # '14:30'
|
||||
"%H:%M:%S", # '14:30:59'
|
||||
"%H:%M:%S.%f", # '14:30:59.000200'
|
||||
"%H:%M", # '14:30'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d %B %Y %H:%M:%S', # '25 October 2006 14:30:59'
|
||||
'%d %B %Y %H:%M:%S.%f', # '25 October 2006 14:30:59.000200'
|
||||
'%d %B %Y %H:%M', # '25 October 2006 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d %B %Y %H:%M:%S", # '25 October 2006 14:30:59'
|
||||
"%d %B %Y %H:%M:%S.%f", # '25 October 2006 14:30:59.000200'
|
||||
"%d %B %Y %H:%M", # '25 October 2006 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,29 +2,29 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'j-E, Y-\y\i\l'
|
||||
TIME_FORMAT = 'G:i'
|
||||
DATETIME_FORMAT = r'j-E, Y-\y\i\l G:i'
|
||||
YEAR_MONTH_FORMAT = r'F Y-\y\i\l'
|
||||
MONTH_DAY_FORMAT = 'j-E'
|
||||
SHORT_DATE_FORMAT = 'd.m.Y'
|
||||
SHORT_DATETIME_FORMAT = 'd.m.Y H:i'
|
||||
DATE_FORMAT = r"j-E, Y-\y\i\l"
|
||||
TIME_FORMAT = "G:i"
|
||||
DATETIME_FORMAT = r"j-E, Y-\y\i\l G:i"
|
||||
YEAR_MONTH_FORMAT = r"F Y-\y\i\l"
|
||||
MONTH_DAY_FORMAT = "j-E"
|
||||
SHORT_DATE_FORMAT = "d.m.Y"
|
||||
SHORT_DATETIME_FORMAT = "d.m.Y H:i"
|
||||
FIRST_DAY_OF_WEEK = 1 # Monday
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%d.%m.%Y', # '25.10.2006'
|
||||
'%d-%B, %Y-yil', # '25-Oktabr, 2006-yil'
|
||||
"%d.%m.%Y", # '25.10.2006'
|
||||
"%d-%B, %Y-yil", # '25-Oktabr, 2006-yil'
|
||||
]
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%d.%m.%Y %H:%M:%S', # '25.10.2006 14:30:59'
|
||||
'%d.%m.%Y %H:%M:%S.%f', # '25.10.2006 14:30:59.000200'
|
||||
'%d.%m.%Y %H:%M', # '25.10.2006 14:30'
|
||||
'%d-%B, %Y-yil %H:%M:%S', # '25-Oktabr, 2006-yil 14:30:59'
|
||||
'%d-%B, %Y-yil %H:%M:%S.%f', # '25-Oktabr, 2006-yil 14:30:59.000200'
|
||||
'%d-%B, %Y-yil %H:%M', # '25-Oktabr, 2006-yil 14:30'
|
||||
"%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
|
||||
"%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
|
||||
"%d.%m.%Y %H:%M", # '25.10.2006 14:30'
|
||||
"%d-%B, %Y-yil %H:%M:%S", # '25-Oktabr, 2006-yil 14:30:59'
|
||||
"%d-%B, %Y-yil %H:%M:%S.%f", # '25-Oktabr, 2006-yil 14:30:59.000200'
|
||||
"%d-%B, %Y-yil %H:%M", # '25-Oktabr, 2006-yil 14:30'
|
||||
]
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "\xa0" # non-breaking space
|
||||
NUMBER_GROUPING = 3
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = r'\N\gà\y d \t\há\n\g n \nă\m Y'
|
||||
TIME_FORMAT = 'H:i'
|
||||
DATETIME_FORMAT = r'H:i \N\gà\y d \t\há\n\g n \nă\m Y'
|
||||
YEAR_MONTH_FORMAT = 'F Y'
|
||||
MONTH_DAY_FORMAT = 'j F'
|
||||
SHORT_DATE_FORMAT = 'd-m-Y'
|
||||
SHORT_DATETIME_FORMAT = 'H:i d-m-Y'
|
||||
DATE_FORMAT = r"\N\gà\y d \t\há\n\g n \nă\m Y"
|
||||
TIME_FORMAT = "H:i"
|
||||
DATETIME_FORMAT = r"H:i \N\gà\y d \t\há\n\g n \nă\m Y"
|
||||
YEAR_MONTH_FORMAT = "F Y"
|
||||
MONTH_DAY_FORMAT = "j F"
|
||||
SHORT_DATE_FORMAT = "d-m-Y"
|
||||
SHORT_DATETIME_FORMAT = "H:i d-m-Y"
|
||||
# FIRST_DAY_OF_WEEK =
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
|
@ -16,6 +16,6 @@ SHORT_DATETIME_FORMAT = 'H:i d-m-Y'
|
|||
# DATE_INPUT_FORMATS =
|
||||
# TIME_INPUT_FORMATS =
|
||||
# DATETIME_INPUT_FORMATS =
|
||||
DECIMAL_SEPARATOR = ','
|
||||
THOUSAND_SEPARATOR = '.'
|
||||
DECIMAL_SEPARATOR = ","
|
||||
THOUSAND_SEPARATOR = "."
|
||||
# NUMBER_GROUPING =
|
||||
|
|
|
@ -2,41 +2,41 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'Y年n月j日' # 2016年9月5日
|
||||
TIME_FORMAT = 'H:i' # 20:45
|
||||
DATETIME_FORMAT = 'Y年n月j日 H:i' # 2016年9月5日 20:45
|
||||
YEAR_MONTH_FORMAT = 'Y年n月' # 2016年9月
|
||||
MONTH_DAY_FORMAT = 'm月j日' # 9月5日
|
||||
SHORT_DATE_FORMAT = 'Y年n月j日' # 2016年9月5日
|
||||
SHORT_DATETIME_FORMAT = 'Y年n月j日 H:i' # 2016年9月5日 20:45
|
||||
FIRST_DAY_OF_WEEK = 1 # 星期一 (Monday)
|
||||
DATE_FORMAT = "Y年n月j日" # 2016年9月5日
|
||||
TIME_FORMAT = "H:i" # 20:45
|
||||
DATETIME_FORMAT = "Y年n月j日 H:i" # 2016年9月5日 20:45
|
||||
YEAR_MONTH_FORMAT = "Y年n月" # 2016年9月
|
||||
MONTH_DAY_FORMAT = "m月j日" # 9月5日
|
||||
SHORT_DATE_FORMAT = "Y年n月j日" # 2016年9月5日
|
||||
SHORT_DATETIME_FORMAT = "Y年n月j日 H:i" # 2016年9月5日 20:45
|
||||
FIRST_DAY_OF_WEEK = 1 # 星期一 (Monday)
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y/%m/%d', # '2016/09/05'
|
||||
'%Y-%m-%d', # '2016-09-05'
|
||||
'%Y年%n月%j日', # '2016年9月5日'
|
||||
"%Y/%m/%d", # '2016/09/05'
|
||||
"%Y-%m-%d", # '2016-09-05'
|
||||
"%Y年%n月%j日", # '2016年9月5日'
|
||||
]
|
||||
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M', # '20:45'
|
||||
'%H:%M:%S', # '20:45:29'
|
||||
'%H:%M:%S.%f', # '20:45:29.000200'
|
||||
"%H:%M", # '20:45'
|
||||
"%H:%M:%S", # '20:45:29'
|
||||
"%H:%M:%S.%f", # '20:45:29.000200'
|
||||
]
|
||||
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y/%m/%d %H:%M', # '2016/09/05 20:45'
|
||||
'%Y-%m-%d %H:%M', # '2016-09-05 20:45'
|
||||
'%Y年%n月%j日 %H:%M', # '2016年9月5日 14:45'
|
||||
'%Y/%m/%d %H:%M:%S', # '2016/09/05 20:45:29'
|
||||
'%Y-%m-%d %H:%M:%S', # '2016-09-05 20:45:29'
|
||||
'%Y年%n月%j日 %H:%M:%S', # '2016年9月5日 20:45:29'
|
||||
'%Y/%m/%d %H:%M:%S.%f', # '2016/09/05 20:45:29.000200'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2016-09-05 20:45:29.000200'
|
||||
'%Y年%n月%j日 %H:%n:%S.%f', # '2016年9月5日 20:45:29.000200'
|
||||
"%Y/%m/%d %H:%M", # '2016/09/05 20:45'
|
||||
"%Y-%m-%d %H:%M", # '2016-09-05 20:45'
|
||||
"%Y年%n月%j日 %H:%M", # '2016年9月5日 14:45'
|
||||
"%Y/%m/%d %H:%M:%S", # '2016/09/05 20:45:29'
|
||||
"%Y-%m-%d %H:%M:%S", # '2016-09-05 20:45:29'
|
||||
"%Y年%n月%j日 %H:%M:%S", # '2016年9月5日 20:45:29'
|
||||
"%Y/%m/%d %H:%M:%S.%f", # '2016/09/05 20:45:29.000200'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2016-09-05 20:45:29.000200'
|
||||
"%Y年%n月%j日 %H:%n:%S.%f", # '2016年9月5日 20:45:29.000200'
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ''
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ""
|
||||
NUMBER_GROUPING = 4
|
||||
|
|
|
@ -2,41 +2,41 @@
|
|||
#
|
||||
# The *_FORMAT strings use the Django date format syntax,
|
||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
|
||||
DATE_FORMAT = 'Y年n月j日' # 2016年9月5日
|
||||
TIME_FORMAT = 'H:i' # 20:45
|
||||
DATETIME_FORMAT = 'Y年n月j日 H:i' # 2016年9月5日 20:45
|
||||
YEAR_MONTH_FORMAT = 'Y年n月' # 2016年9月
|
||||
MONTH_DAY_FORMAT = 'm月j日' # 9月5日
|
||||
SHORT_DATE_FORMAT = 'Y年n月j日' # 2016年9月5日
|
||||
SHORT_DATETIME_FORMAT = 'Y年n月j日 H:i' # 2016年9月5日 20:45
|
||||
FIRST_DAY_OF_WEEK = 1 # 星期一 (Monday)
|
||||
DATE_FORMAT = "Y年n月j日" # 2016年9月5日
|
||||
TIME_FORMAT = "H:i" # 20:45
|
||||
DATETIME_FORMAT = "Y年n月j日 H:i" # 2016年9月5日 20:45
|
||||
YEAR_MONTH_FORMAT = "Y年n月" # 2016年9月
|
||||
MONTH_DAY_FORMAT = "m月j日" # 9月5日
|
||||
SHORT_DATE_FORMAT = "Y年n月j日" # 2016年9月5日
|
||||
SHORT_DATETIME_FORMAT = "Y年n月j日 H:i" # 2016年9月5日 20:45
|
||||
FIRST_DAY_OF_WEEK = 1 # 星期一 (Monday)
|
||||
|
||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax,
|
||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
|
||||
DATE_INPUT_FORMATS = [
|
||||
'%Y/%m/%d', # '2016/09/05'
|
||||
'%Y-%m-%d', # '2016-09-05'
|
||||
'%Y年%n月%j日', # '2016年9月5日'
|
||||
"%Y/%m/%d", # '2016/09/05'
|
||||
"%Y-%m-%d", # '2016-09-05'
|
||||
"%Y年%n月%j日", # '2016年9月5日'
|
||||
]
|
||||
|
||||
TIME_INPUT_FORMATS = [
|
||||
'%H:%M', # '20:45'
|
||||
'%H:%M:%S', # '20:45:29'
|
||||
'%H:%M:%S.%f', # '20:45:29.000200'
|
||||
"%H:%M", # '20:45'
|
||||
"%H:%M:%S", # '20:45:29'
|
||||
"%H:%M:%S.%f", # '20:45:29.000200'
|
||||
]
|
||||
|
||||
DATETIME_INPUT_FORMATS = [
|
||||
'%Y/%m/%d %H:%M', # '2016/09/05 20:45'
|
||||
'%Y-%m-%d %H:%M', # '2016-09-05 20:45'
|
||||
'%Y年%n月%j日 %H:%M', # '2016年9月5日 14:45'
|
||||
'%Y/%m/%d %H:%M:%S', # '2016/09/05 20:45:29'
|
||||
'%Y-%m-%d %H:%M:%S', # '2016-09-05 20:45:29'
|
||||
'%Y年%n月%j日 %H:%M:%S', # '2016年9月5日 20:45:29'
|
||||
'%Y/%m/%d %H:%M:%S.%f', # '2016/09/05 20:45:29.000200'
|
||||
'%Y-%m-%d %H:%M:%S.%f', # '2016-09-05 20:45:29.000200'
|
||||
'%Y年%n月%j日 %H:%n:%S.%f', # '2016年9月5日 20:45:29.000200'
|
||||
"%Y/%m/%d %H:%M", # '2016/09/05 20:45'
|
||||
"%Y-%m-%d %H:%M", # '2016-09-05 20:45'
|
||||
"%Y年%n月%j日 %H:%M", # '2016年9月5日 14:45'
|
||||
"%Y/%m/%d %H:%M:%S", # '2016/09/05 20:45:29'
|
||||
"%Y-%m-%d %H:%M:%S", # '2016-09-05 20:45:29'
|
||||
"%Y年%n月%j日 %H:%M:%S", # '2016年9月5日 20:45:29'
|
||||
"%Y/%m/%d %H:%M:%S.%f", # '2016/09/05 20:45:29.000200'
|
||||
"%Y-%m-%d %H:%M:%S.%f", # '2016-09-05 20:45:29.000200'
|
||||
"%Y年%n月%j日 %H:%n:%S.%f", # '2016年9月5日 20:45:29.000200'
|
||||
]
|
||||
|
||||
DECIMAL_SEPARATOR = '.'
|
||||
THOUSAND_SEPARATOR = ''
|
||||
DECIMAL_SEPARATOR = "."
|
||||
THOUSAND_SEPARATOR = ""
|
||||
NUMBER_GROUPING = 4
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from django.urls import include
|
||||
from django.views import defaults
|
||||
|
||||
__all__ = ['handler400', 'handler403', 'handler404', 'handler500', 'include']
|
||||
__all__ = ["handler400", "handler403", "handler404", "handler500", "include"]
|
||||
|
||||
handler400 = defaults.bad_request
|
||||
handler403 = defaults.permission_denied
|
||||
|
|
|
@ -35,5 +35,5 @@ def is_language_prefix_patterns_used(urlconf):
|
|||
|
||||
|
||||
urlpatterns = [
|
||||
path('setlang/', set_language, name='set_language'),
|
||||
path("setlang/", set_language, name="set_language"),
|
||||
]
|
||||
|
|
|
@ -24,5 +24,7 @@ def static(prefix, view=serve, **kwargs):
|
|||
# No-op if not in debug mode or a non-local prefix.
|
||||
return []
|
||||
return [
|
||||
re_path(r'^%s(?P<path>.*)$' % re.escape(prefix.lstrip('/')), view, kwargs=kwargs),
|
||||
re_path(
|
||||
r"^%s(?P<path>.*)$" % re.escape(prefix.lstrip("/")), view, kwargs=kwargs
|
||||
),
|
||||
]
|
||||
|
|
|
@ -1,24 +1,50 @@
|
|||
from django.contrib.admin.decorators import action, display, register
|
||||
from django.contrib.admin.filters import (
|
||||
AllValuesFieldListFilter, BooleanFieldListFilter, ChoicesFieldListFilter,
|
||||
DateFieldListFilter, EmptyFieldListFilter, FieldListFilter, ListFilter,
|
||||
RelatedFieldListFilter, RelatedOnlyFieldListFilter, SimpleListFilter,
|
||||
AllValuesFieldListFilter,
|
||||
BooleanFieldListFilter,
|
||||
ChoicesFieldListFilter,
|
||||
DateFieldListFilter,
|
||||
EmptyFieldListFilter,
|
||||
FieldListFilter,
|
||||
ListFilter,
|
||||
RelatedFieldListFilter,
|
||||
RelatedOnlyFieldListFilter,
|
||||
SimpleListFilter,
|
||||
)
|
||||
from django.contrib.admin.options import (
|
||||
HORIZONTAL, VERTICAL, ModelAdmin, StackedInline, TabularInline,
|
||||
HORIZONTAL,
|
||||
VERTICAL,
|
||||
ModelAdmin,
|
||||
StackedInline,
|
||||
TabularInline,
|
||||
)
|
||||
from django.contrib.admin.sites import AdminSite, site
|
||||
from django.utils.module_loading import autodiscover_modules
|
||||
|
||||
__all__ = [
|
||||
"action", "display", "register", "ModelAdmin", "HORIZONTAL", "VERTICAL",
|
||||
"StackedInline", "TabularInline", "AdminSite", "site", "ListFilter",
|
||||
"SimpleListFilter", "FieldListFilter", "BooleanFieldListFilter",
|
||||
"RelatedFieldListFilter", "ChoicesFieldListFilter", "DateFieldListFilter",
|
||||
"AllValuesFieldListFilter", "EmptyFieldListFilter",
|
||||
"RelatedOnlyFieldListFilter", "autodiscover",
|
||||
"action",
|
||||
"display",
|
||||
"register",
|
||||
"ModelAdmin",
|
||||
"HORIZONTAL",
|
||||
"VERTICAL",
|
||||
"StackedInline",
|
||||
"TabularInline",
|
||||
"AdminSite",
|
||||
"site",
|
||||
"ListFilter",
|
||||
"SimpleListFilter",
|
||||
"FieldListFilter",
|
||||
"BooleanFieldListFilter",
|
||||
"RelatedFieldListFilter",
|
||||
"ChoicesFieldListFilter",
|
||||
"DateFieldListFilter",
|
||||
"AllValuesFieldListFilter",
|
||||
"EmptyFieldListFilter",
|
||||
"RelatedOnlyFieldListFilter",
|
||||
"autodiscover",
|
||||
]
|
||||
|
||||
|
||||
def autodiscover():
|
||||
autodiscover_modules('admin', register_to=site)
|
||||
autodiscover_modules("admin", register_to=site)
|
||||
|
|
|
@ -8,12 +8,13 @@ from django.contrib.admin.decorators import action
|
|||
from django.contrib.admin.utils import model_ngettext
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.template.response import TemplateResponse
|
||||
from django.utils.translation import gettext as _, gettext_lazy
|
||||
from django.utils.translation import gettext as _
|
||||
from django.utils.translation import gettext_lazy
|
||||
|
||||
|
||||
@action(
|
||||
permissions=['delete'],
|
||||
description=gettext_lazy('Delete selected %(verbose_name_plural)s'),
|
||||
permissions=["delete"],
|
||||
description=gettext_lazy("Delete selected %(verbose_name_plural)s"),
|
||||
)
|
||||
def delete_selected(modeladmin, request, queryset):
|
||||
"""
|
||||
|
@ -30,11 +31,16 @@ def delete_selected(modeladmin, request, queryset):
|
|||
|
||||
# Populate deletable_objects, a data structure of all related objects that
|
||||
# will also be deleted.
|
||||
deletable_objects, model_count, perms_needed, protected = modeladmin.get_deleted_objects(queryset, request)
|
||||
(
|
||||
deletable_objects,
|
||||
model_count,
|
||||
perms_needed,
|
||||
protected,
|
||||
) = modeladmin.get_deleted_objects(queryset, request)
|
||||
|
||||
# The user has already confirmed the deletion.
|
||||
# Do the deletion and return None to display the change list view again.
|
||||
if request.POST.get('post') and not protected:
|
||||
if request.POST.get("post") and not protected:
|
||||
if perms_needed:
|
||||
raise PermissionDenied
|
||||
n = queryset.count()
|
||||
|
@ -43,9 +49,12 @@ def delete_selected(modeladmin, request, queryset):
|
|||
obj_display = str(obj)
|
||||
modeladmin.log_deletion(request, obj, obj_display)
|
||||
modeladmin.delete_queryset(request, queryset)
|
||||
modeladmin.message_user(request, _("Successfully deleted %(count)d %(items)s.") % {
|
||||
"count": n, "items": model_ngettext(modeladmin.opts, n)
|
||||
}, messages.SUCCESS)
|
||||
modeladmin.message_user(
|
||||
request,
|
||||
_("Successfully deleted %(count)d %(items)s.")
|
||||
% {"count": n, "items": model_ngettext(modeladmin.opts, n)},
|
||||
messages.SUCCESS,
|
||||
)
|
||||
# Return None to display the change list page again.
|
||||
return None
|
||||
|
||||
|
@ -58,24 +67,30 @@ def delete_selected(modeladmin, request, queryset):
|
|||
|
||||
context = {
|
||||
**modeladmin.admin_site.each_context(request),
|
||||
'title': title,
|
||||
'subtitle': None,
|
||||
'objects_name': str(objects_name),
|
||||
'deletable_objects': [deletable_objects],
|
||||
'model_count': dict(model_count).items(),
|
||||
'queryset': queryset,
|
||||
'perms_lacking': perms_needed,
|
||||
'protected': protected,
|
||||
'opts': opts,
|
||||
'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME,
|
||||
'media': modeladmin.media,
|
||||
"title": title,
|
||||
"subtitle": None,
|
||||
"objects_name": str(objects_name),
|
||||
"deletable_objects": [deletable_objects],
|
||||
"model_count": dict(model_count).items(),
|
||||
"queryset": queryset,
|
||||
"perms_lacking": perms_needed,
|
||||
"protected": protected,
|
||||
"opts": opts,
|
||||
"action_checkbox_name": helpers.ACTION_CHECKBOX_NAME,
|
||||
"media": modeladmin.media,
|
||||
}
|
||||
|
||||
request.current_app = modeladmin.admin_site.name
|
||||
|
||||
# Display the confirmation page
|
||||
return TemplateResponse(request, modeladmin.delete_selected_confirmation_template or [
|
||||
"admin/%s/%s/delete_selected_confirmation.html" % (app_label, opts.model_name),
|
||||
"admin/%s/delete_selected_confirmation.html" % app_label,
|
||||
"admin/delete_selected_confirmation.html"
|
||||
], context)
|
||||
return TemplateResponse(
|
||||
request,
|
||||
modeladmin.delete_selected_confirmation_template
|
||||
or [
|
||||
"admin/%s/%s/delete_selected_confirmation.html"
|
||||
% (app_label, opts.model_name),
|
||||
"admin/%s/delete_selected_confirmation.html" % app_label,
|
||||
"admin/delete_selected_confirmation.html",
|
||||
],
|
||||
context,
|
||||
)
|
||||
|
|
|
@ -7,9 +7,9 @@ from django.utils.translation import gettext_lazy as _
|
|||
class SimpleAdminConfig(AppConfig):
|
||||
"""Simple AppConfig which does not do automatic discovery."""
|
||||
|
||||
default_auto_field = 'django.db.models.AutoField'
|
||||
default_site = 'django.contrib.admin.sites.AdminSite'
|
||||
name = 'django.contrib.admin'
|
||||
default_auto_field = "django.db.models.AutoField"
|
||||
default_site = "django.contrib.admin.sites.AdminSite"
|
||||
name = "django.contrib.admin"
|
||||
verbose_name = _("Administration")
|
||||
|
||||
def ready(self):
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -17,19 +17,23 @@ def action(function=None, *, permissions=None, description=None):
|
|||
make_published.allowed_permissions = ['publish']
|
||||
make_published.short_description = 'Mark selected stories as published'
|
||||
"""
|
||||
|
||||
def decorator(func):
|
||||
if permissions is not None:
|
||||
func.allowed_permissions = permissions
|
||||
if description is not None:
|
||||
func.short_description = description
|
||||
return func
|
||||
|
||||
if function is None:
|
||||
return decorator
|
||||
else:
|
||||
return decorator(function)
|
||||
|
||||
|
||||
def display(function=None, *, boolean=None, ordering=None, description=None, empty_value=None):
|
||||
def display(
|
||||
function=None, *, boolean=None, ordering=None, description=None, empty_value=None
|
||||
):
|
||||
"""
|
||||
Conveniently add attributes to a display function::
|
||||
|
||||
|
@ -50,11 +54,12 @@ def display(function=None, *, boolean=None, ordering=None, description=None, emp
|
|||
is_published.admin_order_field = '-publish_date'
|
||||
is_published.short_description = 'Is Published?'
|
||||
"""
|
||||
|
||||
def decorator(func):
|
||||
if boolean is not None and empty_value is not None:
|
||||
raise ValueError(
|
||||
'The boolean and empty_value arguments to the @display '
|
||||
'decorator are mutually exclusive.'
|
||||
"The boolean and empty_value arguments to the @display "
|
||||
"decorator are mutually exclusive."
|
||||
)
|
||||
if boolean is not None:
|
||||
func.boolean = boolean
|
||||
|
@ -65,6 +70,7 @@ def display(function=None, *, boolean=None, ordering=None, description=None, emp
|
|||
if empty_value is not None:
|
||||
func.empty_value_display = empty_value
|
||||
return func
|
||||
|
||||
if function is None:
|
||||
return decorator
|
||||
else:
|
||||
|
@ -83,21 +89,23 @@ def register(*models, site=None):
|
|||
The `site` kwarg is an admin site to use instead of the default admin site.
|
||||
"""
|
||||
from django.contrib.admin import ModelAdmin
|
||||
from django.contrib.admin.sites import AdminSite, site as default_site
|
||||
from django.contrib.admin.sites import AdminSite
|
||||
from django.contrib.admin.sites import site as default_site
|
||||
|
||||
def _model_admin_wrapper(admin_class):
|
||||
if not models:
|
||||
raise ValueError('At least one model must be passed to register.')
|
||||
raise ValueError("At least one model must be passed to register.")
|
||||
|
||||
admin_site = site or default_site
|
||||
|
||||
if not isinstance(admin_site, AdminSite):
|
||||
raise ValueError('site must subclass AdminSite')
|
||||
raise ValueError("site must subclass AdminSite")
|
||||
|
||||
if not issubclass(admin_class, ModelAdmin):
|
||||
raise ValueError('Wrapped class must subclass ModelAdmin.')
|
||||
raise ValueError("Wrapped class must subclass ModelAdmin.")
|
||||
|
||||
admin_site.register(models, admin_class=admin_class)
|
||||
|
||||
return admin_class
|
||||
|
||||
return _model_admin_wrapper
|
||||
|
|
|
@ -3,9 +3,11 @@ from django.core.exceptions import SuspiciousOperation
|
|||
|
||||
class DisallowedModelAdminLookup(SuspiciousOperation):
|
||||
"""Invalid filter was passed to admin view via URL querystring"""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class DisallowedModelAdminToField(SuspiciousOperation):
|
||||
"""Invalid to_field was passed to admin view via URL query string"""
|
||||
|
||||
pass
|
||||
|
|
|
@ -9,7 +9,9 @@ import datetime
|
|||
|
||||
from django.contrib.admin.options import IncorrectLookupParameters
|
||||
from django.contrib.admin.utils import (
|
||||
get_model_from_relation, prepare_lookup_value, reverse_field_path,
|
||||
get_model_from_relation,
|
||||
prepare_lookup_value,
|
||||
reverse_field_path,
|
||||
)
|
||||
from django.core.exceptions import ImproperlyConfigured, ValidationError
|
||||
from django.db import models
|
||||
|
@ -19,7 +21,7 @@ from django.utils.translation import gettext_lazy as _
|
|||
|
||||
class ListFilter:
|
||||
title = None # Human-readable title to appear in the right sidebar.
|
||||
template = 'admin/filter.html'
|
||||
template = "admin/filter.html"
|
||||
|
||||
def __init__(self, request, params, model, model_admin):
|
||||
# This dictionary will eventually contain the request's query string
|
||||
|
@ -35,7 +37,9 @@ class ListFilter:
|
|||
"""
|
||||
Return True if some choices would be output for this filter.
|
||||
"""
|
||||
raise NotImplementedError('subclasses of ListFilter must provide a has_output() method')
|
||||
raise NotImplementedError(
|
||||
"subclasses of ListFilter must provide a has_output() method"
|
||||
)
|
||||
|
||||
def choices(self, changelist):
|
||||
"""
|
||||
|
@ -43,20 +47,26 @@ class ListFilter:
|
|||
|
||||
`changelist` is the ChangeList to be displayed.
|
||||
"""
|
||||
raise NotImplementedError('subclasses of ListFilter must provide a choices() method')
|
||||
raise NotImplementedError(
|
||||
"subclasses of ListFilter must provide a choices() method"
|
||||
)
|
||||
|
||||
def queryset(self, request, queryset):
|
||||
"""
|
||||
Return the filtered queryset.
|
||||
"""
|
||||
raise NotImplementedError('subclasses of ListFilter must provide a queryset() method')
|
||||
raise NotImplementedError(
|
||||
"subclasses of ListFilter must provide a queryset() method"
|
||||
)
|
||||
|
||||
def expected_parameters(self):
|
||||
"""
|
||||
Return the list of parameter names that are expected from the
|
||||
request's query string and that will be used by this filter.
|
||||
"""
|
||||
raise NotImplementedError('subclasses of ListFilter must provide an expected_parameters() method')
|
||||
raise NotImplementedError(
|
||||
"subclasses of ListFilter must provide an expected_parameters() method"
|
||||
)
|
||||
|
||||
|
||||
class SimpleListFilter(ListFilter):
|
||||
|
@ -94,8 +104,8 @@ class SimpleListFilter(ListFilter):
|
|||
Must be overridden to return a list of tuples (value, verbose value)
|
||||
"""
|
||||
raise NotImplementedError(
|
||||
'The SimpleListFilter.lookups() method must be overridden to '
|
||||
'return a list of tuples (value, verbose value).'
|
||||
"The SimpleListFilter.lookups() method must be overridden to "
|
||||
"return a list of tuples (value, verbose value)."
|
||||
)
|
||||
|
||||
def expected_parameters(self):
|
||||
|
@ -103,32 +113,36 @@ class SimpleListFilter(ListFilter):
|
|||
|
||||
def choices(self, changelist):
|
||||
yield {
|
||||
'selected': self.value() is None,
|
||||
'query_string': changelist.get_query_string(remove=[self.parameter_name]),
|
||||
'display': _('All'),
|
||||
"selected": self.value() is None,
|
||||
"query_string": changelist.get_query_string(remove=[self.parameter_name]),
|
||||
"display": _("All"),
|
||||
}
|
||||
for lookup, title in self.lookup_choices:
|
||||
yield {
|
||||
'selected': self.value() == str(lookup),
|
||||
'query_string': changelist.get_query_string({self.parameter_name: lookup}),
|
||||
'display': title,
|
||||
"selected": self.value() == str(lookup),
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.parameter_name: lookup}
|
||||
),
|
||||
"display": title,
|
||||
}
|
||||
|
||||
|
||||
class FieldListFilter(ListFilter):
|
||||
_field_list_filters = []
|
||||
_take_priority_index = 0
|
||||
list_separator = ','
|
||||
list_separator = ","
|
||||
|
||||
def __init__(self, field, request, params, model, model_admin, field_path):
|
||||
self.field = field
|
||||
self.field_path = field_path
|
||||
self.title = getattr(field, 'verbose_name', field_path)
|
||||
self.title = getattr(field, "verbose_name", field_path)
|
||||
super().__init__(request, params, model, model_admin)
|
||||
for p in self.expected_parameters():
|
||||
if p in params:
|
||||
value = params.pop(p)
|
||||
self.used_parameters[p] = prepare_lookup_value(p, value, self.list_separator)
|
||||
self.used_parameters[p] = prepare_lookup_value(
|
||||
p, value, self.list_separator
|
||||
)
|
||||
|
||||
def has_output(self):
|
||||
return True
|
||||
|
@ -148,7 +162,8 @@ class FieldListFilter(ListFilter):
|
|||
# of fields with some custom filters. The first found in the list
|
||||
# is used in priority.
|
||||
cls._field_list_filters.insert(
|
||||
cls._take_priority_index, (test, list_filter_class))
|
||||
cls._take_priority_index, (test, list_filter_class)
|
||||
)
|
||||
cls._take_priority_index += 1
|
||||
else:
|
||||
cls._field_list_filters.append((test, list_filter_class))
|
||||
|
@ -157,19 +172,21 @@ class FieldListFilter(ListFilter):
|
|||
def create(cls, field, request, params, model, model_admin, field_path):
|
||||
for test, list_filter_class in cls._field_list_filters:
|
||||
if test(field):
|
||||
return list_filter_class(field, request, params, model, model_admin, field_path=field_path)
|
||||
return list_filter_class(
|
||||
field, request, params, model, model_admin, field_path=field_path
|
||||
)
|
||||
|
||||
|
||||
class RelatedFieldListFilter(FieldListFilter):
|
||||
def __init__(self, field, request, params, model, model_admin, field_path):
|
||||
other_model = get_model_from_relation(field)
|
||||
self.lookup_kwarg = '%s__%s__exact' % (field_path, field.target_field.name)
|
||||
self.lookup_kwarg_isnull = '%s__isnull' % field_path
|
||||
self.lookup_kwarg = "%s__%s__exact" % (field_path, field.target_field.name)
|
||||
self.lookup_kwarg_isnull = "%s__isnull" % field_path
|
||||
self.lookup_val = params.get(self.lookup_kwarg)
|
||||
self.lookup_val_isnull = params.get(self.lookup_kwarg_isnull)
|
||||
super().__init__(field, request, params, model, model_admin, field_path)
|
||||
self.lookup_choices = self.field_choices(field, request, model_admin)
|
||||
if hasattr(field, 'verbose_name'):
|
||||
if hasattr(field, "verbose_name"):
|
||||
self.lookup_title = field.verbose_name
|
||||
else:
|
||||
self.lookup_title = other_model._meta.verbose_name
|
||||
|
@ -209,21 +226,27 @@ class RelatedFieldListFilter(FieldListFilter):
|
|||
|
||||
def choices(self, changelist):
|
||||
yield {
|
||||
'selected': self.lookup_val is None and not self.lookup_val_isnull,
|
||||
'query_string': changelist.get_query_string(remove=[self.lookup_kwarg, self.lookup_kwarg_isnull]),
|
||||
'display': _('All'),
|
||||
"selected": self.lookup_val is None and not self.lookup_val_isnull,
|
||||
"query_string": changelist.get_query_string(
|
||||
remove=[self.lookup_kwarg, self.lookup_kwarg_isnull]
|
||||
),
|
||||
"display": _("All"),
|
||||
}
|
||||
for pk_val, val in self.lookup_choices:
|
||||
yield {
|
||||
'selected': self.lookup_val == str(pk_val),
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg: pk_val}, [self.lookup_kwarg_isnull]),
|
||||
'display': val,
|
||||
"selected": self.lookup_val == str(pk_val),
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg: pk_val}, [self.lookup_kwarg_isnull]
|
||||
),
|
||||
"display": val,
|
||||
}
|
||||
if self.include_empty_choice:
|
||||
yield {
|
||||
'selected': bool(self.lookup_val_isnull),
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg_isnull: 'True'}, [self.lookup_kwarg]),
|
||||
'display': self.empty_value_display,
|
||||
"selected": bool(self.lookup_val_isnull),
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg_isnull: "True"}, [self.lookup_kwarg]
|
||||
),
|
||||
"display": self.empty_value_display,
|
||||
}
|
||||
|
||||
|
||||
|
@ -232,14 +255,19 @@ FieldListFilter.register(lambda f: f.remote_field, RelatedFieldListFilter)
|
|||
|
||||
class BooleanFieldListFilter(FieldListFilter):
|
||||
def __init__(self, field, request, params, model, model_admin, field_path):
|
||||
self.lookup_kwarg = '%s__exact' % field_path
|
||||
self.lookup_kwarg2 = '%s__isnull' % field_path
|
||||
self.lookup_kwarg = "%s__exact" % field_path
|
||||
self.lookup_kwarg2 = "%s__isnull" % field_path
|
||||
self.lookup_val = params.get(self.lookup_kwarg)
|
||||
self.lookup_val2 = params.get(self.lookup_kwarg2)
|
||||
super().__init__(field, request, params, model, model_admin, field_path)
|
||||
if (self.used_parameters and self.lookup_kwarg in self.used_parameters and
|
||||
self.used_parameters[self.lookup_kwarg] in ('1', '0')):
|
||||
self.used_parameters[self.lookup_kwarg] = bool(int(self.used_parameters[self.lookup_kwarg]))
|
||||
if (
|
||||
self.used_parameters
|
||||
and self.lookup_kwarg in self.used_parameters
|
||||
and self.used_parameters[self.lookup_kwarg] in ("1", "0")
|
||||
):
|
||||
self.used_parameters[self.lookup_kwarg] = bool(
|
||||
int(self.used_parameters[self.lookup_kwarg])
|
||||
)
|
||||
|
||||
def expected_parameters(self):
|
||||
return [self.lookup_kwarg, self.lookup_kwarg2]
|
||||
|
@ -247,30 +275,36 @@ class BooleanFieldListFilter(FieldListFilter):
|
|||
def choices(self, changelist):
|
||||
field_choices = dict(self.field.flatchoices)
|
||||
for lookup, title in (
|
||||
(None, _('All')),
|
||||
('1', field_choices.get(True, _('Yes'))),
|
||||
('0', field_choices.get(False, _('No'))),
|
||||
(None, _("All")),
|
||||
("1", field_choices.get(True, _("Yes"))),
|
||||
("0", field_choices.get(False, _("No"))),
|
||||
):
|
||||
yield {
|
||||
'selected': self.lookup_val == lookup and not self.lookup_val2,
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg: lookup}, [self.lookup_kwarg2]),
|
||||
'display': title,
|
||||
"selected": self.lookup_val == lookup and not self.lookup_val2,
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg: lookup}, [self.lookup_kwarg2]
|
||||
),
|
||||
"display": title,
|
||||
}
|
||||
if self.field.null:
|
||||
yield {
|
||||
'selected': self.lookup_val2 == 'True',
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg2: 'True'}, [self.lookup_kwarg]),
|
||||
'display': field_choices.get(None, _('Unknown')),
|
||||
"selected": self.lookup_val2 == "True",
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg2: "True"}, [self.lookup_kwarg]
|
||||
),
|
||||
"display": field_choices.get(None, _("Unknown")),
|
||||
}
|
||||
|
||||
|
||||
FieldListFilter.register(lambda f: isinstance(f, models.BooleanField), BooleanFieldListFilter)
|
||||
FieldListFilter.register(
|
||||
lambda f: isinstance(f, models.BooleanField), BooleanFieldListFilter
|
||||
)
|
||||
|
||||
|
||||
class ChoicesFieldListFilter(FieldListFilter):
|
||||
def __init__(self, field, request, params, model, model_admin, field_path):
|
||||
self.lookup_kwarg = '%s__exact' % field_path
|
||||
self.lookup_kwarg_isnull = '%s__isnull' % field_path
|
||||
self.lookup_kwarg = "%s__exact" % field_path
|
||||
self.lookup_kwarg_isnull = "%s__isnull" % field_path
|
||||
self.lookup_val = params.get(self.lookup_kwarg)
|
||||
self.lookup_val_isnull = params.get(self.lookup_kwarg_isnull)
|
||||
super().__init__(field, request, params, model, model_admin, field_path)
|
||||
|
@ -280,25 +314,31 @@ class ChoicesFieldListFilter(FieldListFilter):
|
|||
|
||||
def choices(self, changelist):
|
||||
yield {
|
||||
'selected': self.lookup_val is None,
|
||||
'query_string': changelist.get_query_string(remove=[self.lookup_kwarg, self.lookup_kwarg_isnull]),
|
||||
'display': _('All')
|
||||
"selected": self.lookup_val is None,
|
||||
"query_string": changelist.get_query_string(
|
||||
remove=[self.lookup_kwarg, self.lookup_kwarg_isnull]
|
||||
),
|
||||
"display": _("All"),
|
||||
}
|
||||
none_title = ''
|
||||
none_title = ""
|
||||
for lookup, title in self.field.flatchoices:
|
||||
if lookup is None:
|
||||
none_title = title
|
||||
continue
|
||||
yield {
|
||||
'selected': str(lookup) == self.lookup_val,
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg: lookup}, [self.lookup_kwarg_isnull]),
|
||||
'display': title,
|
||||
"selected": str(lookup) == self.lookup_val,
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg: lookup}, [self.lookup_kwarg_isnull]
|
||||
),
|
||||
"display": title,
|
||||
}
|
||||
if none_title:
|
||||
yield {
|
||||
'selected': bool(self.lookup_val_isnull),
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg_isnull: 'True'}, [self.lookup_kwarg]),
|
||||
'display': none_title,
|
||||
"selected": bool(self.lookup_val_isnull),
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg_isnull: "True"}, [self.lookup_kwarg]
|
||||
),
|
||||
"display": none_title,
|
||||
}
|
||||
|
||||
|
||||
|
@ -307,8 +347,10 @@ FieldListFilter.register(lambda f: bool(f.choices), ChoicesFieldListFilter)
|
|||
|
||||
class DateFieldListFilter(FieldListFilter):
|
||||
def __init__(self, field, request, params, model, model_admin, field_path):
|
||||
self.field_generic = '%s__' % field_path
|
||||
self.date_params = {k: v for k, v in params.items() if k.startswith(self.field_generic)}
|
||||
self.field_generic = "%s__" % field_path
|
||||
self.date_params = {
|
||||
k: v for k, v in params.items() if k.startswith(self.field_generic)
|
||||
}
|
||||
|
||||
now = timezone.now()
|
||||
# When time zone support is enabled, convert "now" to the user's time
|
||||
|
@ -318,7 +360,7 @@ class DateFieldListFilter(FieldListFilter):
|
|||
|
||||
if isinstance(field, models.DateTimeField):
|
||||
today = now.replace(hour=0, minute=0, second=0, microsecond=0)
|
||||
else: # field is a models.DateField
|
||||
else: # field is a models.DateField
|
||||
today = now.date()
|
||||
tomorrow = today + datetime.timedelta(days=1)
|
||||
if today.month == 12:
|
||||
|
@ -327,32 +369,44 @@ class DateFieldListFilter(FieldListFilter):
|
|||
next_month = today.replace(month=today.month + 1, day=1)
|
||||
next_year = today.replace(year=today.year + 1, month=1, day=1)
|
||||
|
||||
self.lookup_kwarg_since = '%s__gte' % field_path
|
||||
self.lookup_kwarg_until = '%s__lt' % field_path
|
||||
self.lookup_kwarg_since = "%s__gte" % field_path
|
||||
self.lookup_kwarg_until = "%s__lt" % field_path
|
||||
self.links = (
|
||||
(_('Any date'), {}),
|
||||
(_('Today'), {
|
||||
self.lookup_kwarg_since: str(today),
|
||||
self.lookup_kwarg_until: str(tomorrow),
|
||||
}),
|
||||
(_('Past 7 days'), {
|
||||
self.lookup_kwarg_since: str(today - datetime.timedelta(days=7)),
|
||||
self.lookup_kwarg_until: str(tomorrow),
|
||||
}),
|
||||
(_('This month'), {
|
||||
self.lookup_kwarg_since: str(today.replace(day=1)),
|
||||
self.lookup_kwarg_until: str(next_month),
|
||||
}),
|
||||
(_('This year'), {
|
||||
self.lookup_kwarg_since: str(today.replace(month=1, day=1)),
|
||||
self.lookup_kwarg_until: str(next_year),
|
||||
}),
|
||||
(_("Any date"), {}),
|
||||
(
|
||||
_("Today"),
|
||||
{
|
||||
self.lookup_kwarg_since: str(today),
|
||||
self.lookup_kwarg_until: str(tomorrow),
|
||||
},
|
||||
),
|
||||
(
|
||||
_("Past 7 days"),
|
||||
{
|
||||
self.lookup_kwarg_since: str(today - datetime.timedelta(days=7)),
|
||||
self.lookup_kwarg_until: str(tomorrow),
|
||||
},
|
||||
),
|
||||
(
|
||||
_("This month"),
|
||||
{
|
||||
self.lookup_kwarg_since: str(today.replace(day=1)),
|
||||
self.lookup_kwarg_until: str(next_month),
|
||||
},
|
||||
),
|
||||
(
|
||||
_("This year"),
|
||||
{
|
||||
self.lookup_kwarg_since: str(today.replace(month=1, day=1)),
|
||||
self.lookup_kwarg_until: str(next_year),
|
||||
},
|
||||
),
|
||||
)
|
||||
if field.null:
|
||||
self.lookup_kwarg_isnull = '%s__isnull' % field_path
|
||||
self.lookup_kwarg_isnull = "%s__isnull" % field_path
|
||||
self.links += (
|
||||
(_('No date'), {self.field_generic + 'isnull': 'True'}),
|
||||
(_('Has date'), {self.field_generic + 'isnull': 'False'}),
|
||||
(_("No date"), {self.field_generic + "isnull": "True"}),
|
||||
(_("Has date"), {self.field_generic + "isnull": "False"}),
|
||||
)
|
||||
super().__init__(field, request, params, model, model_admin, field_path)
|
||||
|
||||
|
@ -365,14 +419,15 @@ class DateFieldListFilter(FieldListFilter):
|
|||
def choices(self, changelist):
|
||||
for title, param_dict in self.links:
|
||||
yield {
|
||||
'selected': self.date_params == param_dict,
|
||||
'query_string': changelist.get_query_string(param_dict, [self.field_generic]),
|
||||
'display': title,
|
||||
"selected": self.date_params == param_dict,
|
||||
"query_string": changelist.get_query_string(
|
||||
param_dict, [self.field_generic]
|
||||
),
|
||||
"display": title,
|
||||
}
|
||||
|
||||
|
||||
FieldListFilter.register(
|
||||
lambda f: isinstance(f, models.DateField), DateFieldListFilter)
|
||||
FieldListFilter.register(lambda f: isinstance(f, models.DateField), DateFieldListFilter)
|
||||
|
||||
|
||||
# This should be registered last, because it's a last resort. For example,
|
||||
|
@ -381,7 +436,7 @@ FieldListFilter.register(
|
|||
class AllValuesFieldListFilter(FieldListFilter):
|
||||
def __init__(self, field, request, params, model, model_admin, field_path):
|
||||
self.lookup_kwarg = field_path
|
||||
self.lookup_kwarg_isnull = '%s__isnull' % field_path
|
||||
self.lookup_kwarg_isnull = "%s__isnull" % field_path
|
||||
self.lookup_val = params.get(self.lookup_kwarg)
|
||||
self.lookup_val_isnull = params.get(self.lookup_kwarg_isnull)
|
||||
self.empty_value_display = model_admin.get_empty_value_display()
|
||||
|
@ -391,7 +446,9 @@ class AllValuesFieldListFilter(FieldListFilter):
|
|||
queryset = model_admin.get_queryset(request)
|
||||
else:
|
||||
queryset = parent_model._default_manager.all()
|
||||
self.lookup_choices = queryset.distinct().order_by(field.name).values_list(field.name, flat=True)
|
||||
self.lookup_choices = (
|
||||
queryset.distinct().order_by(field.name).values_list(field.name, flat=True)
|
||||
)
|
||||
super().__init__(field, request, params, model, model_admin, field_path)
|
||||
|
||||
def expected_parameters(self):
|
||||
|
@ -399,9 +456,11 @@ class AllValuesFieldListFilter(FieldListFilter):
|
|||
|
||||
def choices(self, changelist):
|
||||
yield {
|
||||
'selected': self.lookup_val is None and self.lookup_val_isnull is None,
|
||||
'query_string': changelist.get_query_string(remove=[self.lookup_kwarg, self.lookup_kwarg_isnull]),
|
||||
'display': _('All'),
|
||||
"selected": self.lookup_val is None and self.lookup_val_isnull is None,
|
||||
"query_string": changelist.get_query_string(
|
||||
remove=[self.lookup_kwarg, self.lookup_kwarg_isnull]
|
||||
),
|
||||
"display": _("All"),
|
||||
}
|
||||
include_none = False
|
||||
for val in self.lookup_choices:
|
||||
|
@ -410,15 +469,19 @@ class AllValuesFieldListFilter(FieldListFilter):
|
|||
continue
|
||||
val = str(val)
|
||||
yield {
|
||||
'selected': self.lookup_val == val,
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg: val}, [self.lookup_kwarg_isnull]),
|
||||
'display': val,
|
||||
"selected": self.lookup_val == val,
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg: val}, [self.lookup_kwarg_isnull]
|
||||
),
|
||||
"display": val,
|
||||
}
|
||||
if include_none:
|
||||
yield {
|
||||
'selected': bool(self.lookup_val_isnull),
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg_isnull: 'True'}, [self.lookup_kwarg]),
|
||||
'display': self.empty_value_display,
|
||||
"selected": bool(self.lookup_val_isnull),
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg_isnull: "True"}, [self.lookup_kwarg]
|
||||
),
|
||||
"display": self.empty_value_display,
|
||||
}
|
||||
|
||||
|
||||
|
@ -427,9 +490,15 @@ FieldListFilter.register(lambda f: True, AllValuesFieldListFilter)
|
|||
|
||||
class RelatedOnlyFieldListFilter(RelatedFieldListFilter):
|
||||
def field_choices(self, field, request, model_admin):
|
||||
pk_qs = model_admin.get_queryset(request).distinct().values_list('%s__pk' % self.field_path, flat=True)
|
||||
pk_qs = (
|
||||
model_admin.get_queryset(request)
|
||||
.distinct()
|
||||
.values_list("%s__pk" % self.field_path, flat=True)
|
||||
)
|
||||
ordering = self.field_admin_ordering(field, request, model_admin)
|
||||
return field.get_choices(include_blank=False, limit_choices_to={'pk__in': pk_qs}, ordering=ordering)
|
||||
return field.get_choices(
|
||||
include_blank=False, limit_choices_to={"pk__in": pk_qs}, ordering=ordering
|
||||
)
|
||||
|
||||
|
||||
class EmptyFieldListFilter(FieldListFilter):
|
||||
|
@ -437,28 +506,29 @@ class EmptyFieldListFilter(FieldListFilter):
|
|||
if not field.empty_strings_allowed and not field.null:
|
||||
raise ImproperlyConfigured(
|
||||
"The list filter '%s' cannot be used with field '%s' which "
|
||||
"doesn't allow empty strings and nulls." % (
|
||||
"doesn't allow empty strings and nulls."
|
||||
% (
|
||||
self.__class__.__name__,
|
||||
field.name,
|
||||
)
|
||||
)
|
||||
self.lookup_kwarg = '%s__isempty' % field_path
|
||||
self.lookup_kwarg = "%s__isempty" % field_path
|
||||
self.lookup_val = params.get(self.lookup_kwarg)
|
||||
super().__init__(field, request, params, model, model_admin, field_path)
|
||||
|
||||
def queryset(self, request, queryset):
|
||||
if self.lookup_kwarg not in self.used_parameters:
|
||||
return queryset
|
||||
if self.lookup_val not in ('0', '1'):
|
||||
if self.lookup_val not in ("0", "1"):
|
||||
raise IncorrectLookupParameters
|
||||
|
||||
lookup_conditions = []
|
||||
if self.field.empty_strings_allowed:
|
||||
lookup_conditions.append((self.field_path, ''))
|
||||
lookup_conditions.append((self.field_path, ""))
|
||||
if self.field.null:
|
||||
lookup_conditions.append((f'{self.field_path}__isnull', True))
|
||||
lookup_conditions.append((f"{self.field_path}__isnull", True))
|
||||
lookup_condition = models.Q(*lookup_conditions, _connector=models.Q.OR)
|
||||
if self.lookup_val == '1':
|
||||
if self.lookup_val == "1":
|
||||
return queryset.filter(lookup_condition)
|
||||
return queryset.exclude(lookup_condition)
|
||||
|
||||
|
@ -467,12 +537,14 @@ class EmptyFieldListFilter(FieldListFilter):
|
|||
|
||||
def choices(self, changelist):
|
||||
for lookup, title in (
|
||||
(None, _('All')),
|
||||
('1', _('Empty')),
|
||||
('0', _('Not empty')),
|
||||
(None, _("All")),
|
||||
("1", _("Empty")),
|
||||
("0", _("Not empty")),
|
||||
):
|
||||
yield {
|
||||
'selected': self.lookup_val == lookup,
|
||||
'query_string': changelist.get_query_string({self.lookup_kwarg: lookup}),
|
||||
'display': title,
|
||||
"selected": self.lookup_val == lookup,
|
||||
"query_string": changelist.get_query_string(
|
||||
{self.lookup_kwarg: lookup}
|
||||
),
|
||||
"display": title,
|
||||
}
|
||||
|
|
|
@ -7,24 +7,25 @@ class AdminAuthenticationForm(AuthenticationForm):
|
|||
"""
|
||||
A custom authentication form used in the admin app.
|
||||
"""
|
||||
|
||||
error_messages = {
|
||||
**AuthenticationForm.error_messages,
|
||||
'invalid_login': _(
|
||||
"invalid_login": _(
|
||||
"Please enter the correct %(username)s and password for a staff "
|
||||
"account. Note that both fields may be case-sensitive."
|
||||
),
|
||||
}
|
||||
required_css_class = 'required'
|
||||
required_css_class = "required"
|
||||
|
||||
def confirm_login_allowed(self, user):
|
||||
super().confirm_login_allowed(user)
|
||||
if not user.is_staff:
|
||||
raise ValidationError(
|
||||
self.error_messages['invalid_login'],
|
||||
code='invalid_login',
|
||||
params={'username': self.username_field.verbose_name}
|
||||
self.error_messages["invalid_login"],
|
||||
code="invalid_login",
|
||||
params={"username": self.username_field.verbose_name},
|
||||
)
|
||||
|
||||
|
||||
class AdminPasswordChangeForm(PasswordChangeForm):
|
||||
required_css_class = 'required'
|
||||
required_css_class = "required"
|
||||
|
|
|
@ -2,43 +2,57 @@ import json
|
|||
|
||||
from django import forms
|
||||
from django.contrib.admin.utils import (
|
||||
display_for_field, flatten_fieldsets, help_text_for_field, label_for_field,
|
||||
lookup_field, quote,
|
||||
display_for_field,
|
||||
flatten_fieldsets,
|
||||
help_text_for_field,
|
||||
label_for_field,
|
||||
lookup_field,
|
||||
quote,
|
||||
)
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.db.models.fields.related import (
|
||||
ForeignObjectRel, ManyToManyRel, OneToOneField,
|
||||
ForeignObjectRel,
|
||||
ManyToManyRel,
|
||||
OneToOneField,
|
||||
)
|
||||
from django.forms.utils import flatatt
|
||||
from django.template.defaultfilters import capfirst, linebreaksbr
|
||||
from django.urls import NoReverseMatch, reverse
|
||||
from django.utils.html import conditional_escape, format_html
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.utils.translation import gettext, gettext_lazy as _
|
||||
from django.utils.translation import gettext
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
ACTION_CHECKBOX_NAME = '_selected_action'
|
||||
ACTION_CHECKBOX_NAME = "_selected_action"
|
||||
|
||||
|
||||
class ActionForm(forms.Form):
|
||||
action = forms.ChoiceField(label=_('Action:'))
|
||||
action = forms.ChoiceField(label=_("Action:"))
|
||||
select_across = forms.BooleanField(
|
||||
label='',
|
||||
label="",
|
||||
required=False,
|
||||
initial=0,
|
||||
widget=forms.HiddenInput({'class': 'select-across'}),
|
||||
widget=forms.HiddenInput({"class": "select-across"}),
|
||||
)
|
||||
|
||||
|
||||
checkbox = forms.CheckboxInput({'class': 'action-select'}, lambda value: False)
|
||||
checkbox = forms.CheckboxInput({"class": "action-select"}, lambda value: False)
|
||||
|
||||
|
||||
class AdminForm:
|
||||
def __init__(self, form, fieldsets, prepopulated_fields, readonly_fields=None, model_admin=None):
|
||||
def __init__(
|
||||
self,
|
||||
form,
|
||||
fieldsets,
|
||||
prepopulated_fields,
|
||||
readonly_fields=None,
|
||||
model_admin=None,
|
||||
):
|
||||
self.form, self.fieldsets = form, fieldsets
|
||||
self.prepopulated_fields = [{
|
||||
'field': form[field_name],
|
||||
'dependencies': [form[f] for f in dependencies]
|
||||
} for field_name, dependencies in prepopulated_fields.items()]
|
||||
self.prepopulated_fields = [
|
||||
{"field": form[field_name], "dependencies": [form[f] for f in dependencies]}
|
||||
for field_name, dependencies in prepopulated_fields.items()
|
||||
]
|
||||
self.model_admin = model_admin
|
||||
if readonly_fields is None:
|
||||
readonly_fields = ()
|
||||
|
@ -46,18 +60,19 @@ class AdminForm:
|
|||
|
||||
def __repr__(self):
|
||||
return (
|
||||
f'<{self.__class__.__qualname__}: '
|
||||
f'form={self.form.__class__.__qualname__} '
|
||||
f'fieldsets={self.fieldsets!r}>'
|
||||
f"<{self.__class__.__qualname__}: "
|
||||
f"form={self.form.__class__.__qualname__} "
|
||||
f"fieldsets={self.fieldsets!r}>"
|
||||
)
|
||||
|
||||
def __iter__(self):
|
||||
for name, options in self.fieldsets:
|
||||
yield Fieldset(
|
||||
self.form, name,
|
||||
self.form,
|
||||
name,
|
||||
readonly_fields=self.readonly_fields,
|
||||
model_admin=self.model_admin,
|
||||
**options
|
||||
**options,
|
||||
)
|
||||
|
||||
@property
|
||||
|
@ -77,24 +92,34 @@ class AdminForm:
|
|||
|
||||
|
||||
class Fieldset:
|
||||
def __init__(self, form, name=None, readonly_fields=(), fields=(), classes=(),
|
||||
description=None, model_admin=None):
|
||||
def __init__(
|
||||
self,
|
||||
form,
|
||||
name=None,
|
||||
readonly_fields=(),
|
||||
fields=(),
|
||||
classes=(),
|
||||
description=None,
|
||||
model_admin=None,
|
||||
):
|
||||
self.form = form
|
||||
self.name, self.fields = name, fields
|
||||
self.classes = ' '.join(classes)
|
||||
self.classes = " ".join(classes)
|
||||
self.description = description
|
||||
self.model_admin = model_admin
|
||||
self.readonly_fields = readonly_fields
|
||||
|
||||
@property
|
||||
def media(self):
|
||||
if 'collapse' in self.classes:
|
||||
return forms.Media(js=['admin/js/collapse.js'])
|
||||
if "collapse" in self.classes:
|
||||
return forms.Media(js=["admin/js/collapse.js"])
|
||||
return forms.Media()
|
||||
|
||||
def __iter__(self):
|
||||
for field in self.fields:
|
||||
yield Fieldline(self.form, field, self.readonly_fields, model_admin=self.model_admin)
|
||||
yield Fieldline(
|
||||
self.form, field, self.readonly_fields, model_admin=self.model_admin
|
||||
)
|
||||
|
||||
|
||||
class Fieldline:
|
||||
|
@ -116,15 +141,19 @@ class Fieldline:
|
|||
def __iter__(self):
|
||||
for i, field in enumerate(self.fields):
|
||||
if field in self.readonly_fields:
|
||||
yield AdminReadonlyField(self.form, field, is_first=(i == 0), model_admin=self.model_admin)
|
||||
yield AdminReadonlyField(
|
||||
self.form, field, is_first=(i == 0), model_admin=self.model_admin
|
||||
)
|
||||
else:
|
||||
yield AdminField(self.form, field, is_first=(i == 0))
|
||||
|
||||
def errors(self):
|
||||
return mark_safe(
|
||||
'\n'.join(
|
||||
self.form[f].errors.as_ul() for f in self.fields if f not in self.readonly_fields
|
||||
).strip('\n')
|
||||
"\n".join(
|
||||
self.form[f].errors.as_ul()
|
||||
for f in self.fields
|
||||
if f not in self.readonly_fields
|
||||
).strip("\n")
|
||||
)
|
||||
|
||||
|
||||
|
@ -139,18 +168,19 @@ class AdminField:
|
|||
classes = []
|
||||
contents = conditional_escape(self.field.label)
|
||||
if self.is_checkbox:
|
||||
classes.append('vCheckboxLabel')
|
||||
classes.append("vCheckboxLabel")
|
||||
|
||||
if self.field.field.required:
|
||||
classes.append('required')
|
||||
classes.append("required")
|
||||
if not self.is_first:
|
||||
classes.append('inline')
|
||||
attrs = {'class': ' '.join(classes)} if classes else {}
|
||||
classes.append("inline")
|
||||
attrs = {"class": " ".join(classes)} if classes else {}
|
||||
# checkboxes should not have a label suffix as the checkbox appears
|
||||
# to the left of the label.
|
||||
return self.field.label_tag(
|
||||
contents=mark_safe(contents), attrs=attrs,
|
||||
label_suffix='' if self.is_checkbox else None,
|
||||
contents=mark_safe(contents),
|
||||
attrs=attrs,
|
||||
label_suffix="" if self.is_checkbox else None,
|
||||
)
|
||||
|
||||
def errors(self):
|
||||
|
@ -163,7 +193,7 @@ class AdminReadonlyField:
|
|||
# {{ field.name }} must be a useful class name to identify the field.
|
||||
# For convenience, store other field-related data here too.
|
||||
if callable(field):
|
||||
class_name = field.__name__ if field.__name__ != '<lambda>' else ''
|
||||
class_name = field.__name__ if field.__name__ != "<lambda>" else ""
|
||||
else:
|
||||
class_name = field
|
||||
|
||||
|
@ -183,11 +213,11 @@ class AdminReadonlyField:
|
|||
is_hidden = False
|
||||
|
||||
self.field = {
|
||||
'name': class_name,
|
||||
'label': label,
|
||||
'help_text': help_text,
|
||||
'field': field,
|
||||
'is_hidden': is_hidden,
|
||||
"name": class_name,
|
||||
"label": label,
|
||||
"help_text": help_text,
|
||||
"field": field,
|
||||
"is_hidden": is_hidden,
|
||||
}
|
||||
self.form = form
|
||||
self.model_admin = model_admin
|
||||
|
@ -200,11 +230,16 @@ class AdminReadonlyField:
|
|||
attrs = {}
|
||||
if not self.is_first:
|
||||
attrs["class"] = "inline"
|
||||
label = self.field['label']
|
||||
return format_html('<label{}>{}{}</label>', flatatt(attrs), capfirst(label), self.form.label_suffix)
|
||||
label = self.field["label"]
|
||||
return format_html(
|
||||
"<label{}>{}{}</label>",
|
||||
flatatt(attrs),
|
||||
capfirst(label),
|
||||
self.form.label_suffix,
|
||||
)
|
||||
|
||||
def get_admin_url(self, remote_field, remote_obj):
|
||||
url_name = 'admin:%s_%s_change' % (
|
||||
url_name = "admin:%s_%s_change" % (
|
||||
remote_field.model._meta.app_label,
|
||||
remote_field.model._meta.model_name,
|
||||
)
|
||||
|
@ -220,7 +255,12 @@ class AdminReadonlyField:
|
|||
|
||||
def contents(self):
|
||||
from django.contrib.admin.templatetags.admin_list import _boolean_icon
|
||||
field, obj, model_admin = self.field['field'], self.form.instance, self.model_admin
|
||||
|
||||
field, obj, model_admin = (
|
||||
self.field["field"],
|
||||
self.form.instance,
|
||||
self.model_admin,
|
||||
)
|
||||
try:
|
||||
f, attr, value = lookup_field(field, obj, model_admin)
|
||||
except (AttributeError, ValueError, ObjectDoesNotExist):
|
||||
|
@ -230,10 +270,10 @@ class AdminReadonlyField:
|
|||
widget = self.form[field].field.widget
|
||||
# This isn't elegant but suffices for contrib.auth's
|
||||
# ReadOnlyPasswordHashWidget.
|
||||
if getattr(widget, 'read_only', False):
|
||||
if getattr(widget, "read_only", False):
|
||||
return widget.render(field, value)
|
||||
if f is None:
|
||||
if getattr(attr, 'boolean', False):
|
||||
if getattr(attr, "boolean", False):
|
||||
result_repr = _boolean_icon(value)
|
||||
else:
|
||||
if hasattr(value, "__html__"):
|
||||
|
@ -244,8 +284,8 @@ class AdminReadonlyField:
|
|||
if isinstance(f.remote_field, ManyToManyRel) and value is not None:
|
||||
result_repr = ", ".join(map(str, value.all()))
|
||||
elif (
|
||||
isinstance(f.remote_field, (ForeignObjectRel, OneToOneField)) and
|
||||
value is not None
|
||||
isinstance(f.remote_field, (ForeignObjectRel, OneToOneField))
|
||||
and value is not None
|
||||
):
|
||||
result_repr = self.get_admin_url(f.remote_field, value)
|
||||
else:
|
||||
|
@ -258,10 +298,20 @@ class InlineAdminFormSet:
|
|||
"""
|
||||
A wrapper around an inline formset for use in the admin system.
|
||||
"""
|
||||
def __init__(self, inline, formset, fieldsets, prepopulated_fields=None,
|
||||
readonly_fields=None, model_admin=None, has_add_permission=True,
|
||||
has_change_permission=True, has_delete_permission=True,
|
||||
has_view_permission=True):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
inline,
|
||||
formset,
|
||||
fieldsets,
|
||||
prepopulated_fields=None,
|
||||
readonly_fields=None,
|
||||
model_admin=None,
|
||||
has_add_permission=True,
|
||||
has_change_permission=True,
|
||||
has_delete_permission=True,
|
||||
has_view_permission=True,
|
||||
):
|
||||
self.opts = inline
|
||||
self.formset = formset
|
||||
self.fieldsets = fieldsets
|
||||
|
@ -272,7 +322,7 @@ class InlineAdminFormSet:
|
|||
if prepopulated_fields is None:
|
||||
prepopulated_fields = {}
|
||||
self.prepopulated_fields = prepopulated_fields
|
||||
self.classes = ' '.join(inline.classes) if inline.classes else ''
|
||||
self.classes = " ".join(inline.classes) if inline.classes else ""
|
||||
self.has_add_permission = has_add_permission
|
||||
self.has_change_permission = has_change_permission
|
||||
self.has_delete_permission = has_delete_permission
|
||||
|
@ -282,25 +332,43 @@ class InlineAdminFormSet:
|
|||
if self.has_change_permission:
|
||||
readonly_fields_for_editing = self.readonly_fields
|
||||
else:
|
||||
readonly_fields_for_editing = self.readonly_fields + flatten_fieldsets(self.fieldsets)
|
||||
readonly_fields_for_editing = self.readonly_fields + flatten_fieldsets(
|
||||
self.fieldsets
|
||||
)
|
||||
|
||||
for form, original in zip(self.formset.initial_forms, self.formset.get_queryset()):
|
||||
for form, original in zip(
|
||||
self.formset.initial_forms, self.formset.get_queryset()
|
||||
):
|
||||
view_on_site_url = self.opts.get_view_on_site_url(original)
|
||||
yield InlineAdminForm(
|
||||
self.formset, form, self.fieldsets, self.prepopulated_fields,
|
||||
original, readonly_fields_for_editing, model_admin=self.opts,
|
||||
self.formset,
|
||||
form,
|
||||
self.fieldsets,
|
||||
self.prepopulated_fields,
|
||||
original,
|
||||
readonly_fields_for_editing,
|
||||
model_admin=self.opts,
|
||||
view_on_site_url=view_on_site_url,
|
||||
)
|
||||
for form in self.formset.extra_forms:
|
||||
yield InlineAdminForm(
|
||||
self.formset, form, self.fieldsets, self.prepopulated_fields,
|
||||
None, self.readonly_fields, model_admin=self.opts,
|
||||
self.formset,
|
||||
form,
|
||||
self.fieldsets,
|
||||
self.prepopulated_fields,
|
||||
None,
|
||||
self.readonly_fields,
|
||||
model_admin=self.opts,
|
||||
)
|
||||
if self.has_add_permission:
|
||||
yield InlineAdminForm(
|
||||
self.formset, self.formset.empty_form,
|
||||
self.fieldsets, self.prepopulated_fields, None,
|
||||
self.readonly_fields, model_admin=self.opts,
|
||||
self.formset,
|
||||
self.formset.empty_form,
|
||||
self.fieldsets,
|
||||
self.prepopulated_fields,
|
||||
None,
|
||||
self.readonly_fields,
|
||||
model_admin=self.opts,
|
||||
)
|
||||
|
||||
def fields(self):
|
||||
|
@ -317,42 +385,49 @@ class InlineAdminFormSet:
|
|||
if form_field is not None:
|
||||
widget_is_hidden = form_field.widget.is_hidden
|
||||
yield {
|
||||
'name': field_name,
|
||||
'label': meta_labels.get(field_name) or label_for_field(
|
||||
"name": field_name,
|
||||
"label": meta_labels.get(field_name)
|
||||
or label_for_field(
|
||||
field_name,
|
||||
self.opts.model,
|
||||
self.opts,
|
||||
form=empty_form,
|
||||
),
|
||||
'widget': {'is_hidden': widget_is_hidden},
|
||||
'required': False,
|
||||
'help_text': meta_help_texts.get(field_name) or help_text_for_field(field_name, self.opts.model),
|
||||
"widget": {"is_hidden": widget_is_hidden},
|
||||
"required": False,
|
||||
"help_text": meta_help_texts.get(field_name)
|
||||
or help_text_for_field(field_name, self.opts.model),
|
||||
}
|
||||
else:
|
||||
form_field = empty_form.fields[field_name]
|
||||
label = form_field.label
|
||||
if label is None:
|
||||
label = label_for_field(field_name, self.opts.model, self.opts, form=empty_form)
|
||||
label = label_for_field(
|
||||
field_name, self.opts.model, self.opts, form=empty_form
|
||||
)
|
||||
yield {
|
||||
'name': field_name,
|
||||
'label': label,
|
||||
'widget': form_field.widget,
|
||||
'required': form_field.required,
|
||||
'help_text': form_field.help_text,
|
||||
"name": field_name,
|
||||
"label": label,
|
||||
"widget": form_field.widget,
|
||||
"required": form_field.required,
|
||||
"help_text": form_field.help_text,
|
||||
}
|
||||
|
||||
def inline_formset_data(self):
|
||||
verbose_name = self.opts.verbose_name
|
||||
return json.dumps({
|
||||
'name': '#%s' % self.formset.prefix,
|
||||
'options': {
|
||||
'prefix': self.formset.prefix,
|
||||
'addText': gettext('Add another %(verbose_name)s') % {
|
||||
'verbose_name': capfirst(verbose_name),
|
||||
return json.dumps(
|
||||
{
|
||||
"name": "#%s" % self.formset.prefix,
|
||||
"options": {
|
||||
"prefix": self.formset.prefix,
|
||||
"addText": gettext("Add another %(verbose_name)s")
|
||||
% {
|
||||
"verbose_name": capfirst(verbose_name),
|
||||
},
|
||||
"deleteText": gettext("Remove"),
|
||||
},
|
||||
'deleteText': gettext('Remove'),
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
@property
|
||||
def forms(self):
|
||||
|
@ -374,31 +449,51 @@ class InlineAdminForm(AdminForm):
|
|||
"""
|
||||
A wrapper around an inline form for use in the admin system.
|
||||
"""
|
||||
def __init__(self, formset, form, fieldsets, prepopulated_fields, original,
|
||||
readonly_fields=None, model_admin=None, view_on_site_url=None):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
formset,
|
||||
form,
|
||||
fieldsets,
|
||||
prepopulated_fields,
|
||||
original,
|
||||
readonly_fields=None,
|
||||
model_admin=None,
|
||||
view_on_site_url=None,
|
||||
):
|
||||
self.formset = formset
|
||||
self.model_admin = model_admin
|
||||
self.original = original
|
||||
self.show_url = original and view_on_site_url is not None
|
||||
self.absolute_url = view_on_site_url
|
||||
super().__init__(form, fieldsets, prepopulated_fields, readonly_fields, model_admin)
|
||||
super().__init__(
|
||||
form, fieldsets, prepopulated_fields, readonly_fields, model_admin
|
||||
)
|
||||
|
||||
def __iter__(self):
|
||||
for name, options in self.fieldsets:
|
||||
yield InlineFieldset(
|
||||
self.formset, self.form, name, self.readonly_fields,
|
||||
model_admin=self.model_admin, **options
|
||||
self.formset,
|
||||
self.form,
|
||||
name,
|
||||
self.readonly_fields,
|
||||
model_admin=self.model_admin,
|
||||
**options,
|
||||
)
|
||||
|
||||
def needs_explicit_pk_field(self):
|
||||
return (
|
||||
# Auto fields are editable, so check for auto or non-editable pk.
|
||||
self.form._meta.model._meta.auto_field or not self.form._meta.model._meta.pk.editable or
|
||||
self.form._meta.model._meta.auto_field
|
||||
or not self.form._meta.model._meta.pk.editable
|
||||
or
|
||||
# Also search any parents for an auto field. (The pk info is
|
||||
# propagated to child models so that does not need to be checked
|
||||
# in parents.)
|
||||
any(parent._meta.auto_field or not parent._meta.model._meta.pk.editable
|
||||
for parent in self.form._meta.model._meta.get_parent_list())
|
||||
any(
|
||||
parent._meta.auto_field or not parent._meta.model._meta.pk.editable
|
||||
for parent in self.form._meta.model._meta.get_parent_list()
|
||||
)
|
||||
)
|
||||
|
||||
def pk_field(self):
|
||||
|
@ -413,10 +508,12 @@ class InlineAdminForm(AdminForm):
|
|||
|
||||
def deletion_field(self):
|
||||
from django.forms.formsets import DELETION_FIELD_NAME
|
||||
|
||||
return AdminField(self.form, DELETION_FIELD_NAME, False)
|
||||
|
||||
def ordering_field(self):
|
||||
from django.forms.formsets import ORDERING_FIELD_NAME
|
||||
|
||||
return AdminField(self.form, ORDERING_FIELD_NAME, False)
|
||||
|
||||
|
||||
|
@ -429,11 +526,14 @@ class InlineFieldset(Fieldset):
|
|||
fk = getattr(self.formset, "fk", None)
|
||||
for field in self.fields:
|
||||
if not fk or fk.name != field:
|
||||
yield Fieldline(self.form, field, self.readonly_fields, model_admin=self.model_admin)
|
||||
yield Fieldline(
|
||||
self.form, field, self.readonly_fields, model_admin=self.model_admin
|
||||
)
|
||||
|
||||
|
||||
class AdminErrorList(forms.utils.ErrorList):
|
||||
"""Store errors for the form/formsets in an add/change view."""
|
||||
|
||||
def __init__(self, form, inline_formsets):
|
||||
super().__init__()
|
||||
|
||||
|
|
|
@ -7,40 +7,70 @@ class Migration(migrations.Migration):
|
|||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('contenttypes', '__first__'),
|
||||
("contenttypes", "__first__"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='LogEntry',
|
||||
name="LogEntry",
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('action_time', models.DateTimeField(auto_now=True, verbose_name='action time')),
|
||||
('object_id', models.TextField(null=True, verbose_name='object id', blank=True)),
|
||||
('object_repr', models.CharField(max_length=200, verbose_name='object repr')),
|
||||
('action_flag', models.PositiveSmallIntegerField(verbose_name='action flag')),
|
||||
('change_message', models.TextField(verbose_name='change message', blank=True)),
|
||||
('content_type', models.ForeignKey(
|
||||
on_delete=models.SET_NULL,
|
||||
blank=True, null=True,
|
||||
to='contenttypes.ContentType',
|
||||
verbose_name='content type',
|
||||
)),
|
||||
('user', models.ForeignKey(
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name='user',
|
||||
)),
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
verbose_name="ID",
|
||||
serialize=False,
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
),
|
||||
),
|
||||
(
|
||||
"action_time",
|
||||
models.DateTimeField(auto_now=True, verbose_name="action time"),
|
||||
),
|
||||
(
|
||||
"object_id",
|
||||
models.TextField(null=True, verbose_name="object id", blank=True),
|
||||
),
|
||||
(
|
||||
"object_repr",
|
||||
models.CharField(max_length=200, verbose_name="object repr"),
|
||||
),
|
||||
(
|
||||
"action_flag",
|
||||
models.PositiveSmallIntegerField(verbose_name="action flag"),
|
||||
),
|
||||
(
|
||||
"change_message",
|
||||
models.TextField(verbose_name="change message", blank=True),
|
||||
),
|
||||
(
|
||||
"content_type",
|
||||
models.ForeignKey(
|
||||
on_delete=models.SET_NULL,
|
||||
blank=True,
|
||||
null=True,
|
||||
to="contenttypes.ContentType",
|
||||
verbose_name="content type",
|
||||
),
|
||||
),
|
||||
(
|
||||
"user",
|
||||
models.ForeignKey(
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
on_delete=models.CASCADE,
|
||||
verbose_name="user",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
'ordering': ['-action_time'],
|
||||
'db_table': 'django_admin_log',
|
||||
'verbose_name': 'log entry',
|
||||
'verbose_name_plural': 'log entries',
|
||||
"ordering": ["-action_time"],
|
||||
"db_table": "django_admin_log",
|
||||
"verbose_name": "log entry",
|
||||
"verbose_name_plural": "log entries",
|
||||
},
|
||||
bases=(models.Model,),
|
||||
managers=[
|
||||
('objects', django.contrib.admin.models.LogEntryManager()),
|
||||
("objects", django.contrib.admin.models.LogEntryManager()),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
|
|
@ -5,16 +5,16 @@ from django.utils import timezone
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('admin', '0001_initial'),
|
||||
("admin", "0001_initial"),
|
||||
]
|
||||
|
||||
# No database changes; removes auto_add and adds default/editable.
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='logentry',
|
||||
name='action_time',
|
||||
model_name="logentry",
|
||||
name="action_time",
|
||||
field=models.DateTimeField(
|
||||
verbose_name='action time',
|
||||
verbose_name="action time",
|
||||
default=timezone.now,
|
||||
editable=False,
|
||||
),
|
||||
|
|
|
@ -4,17 +4,17 @@ from django.db import migrations, models
|
|||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('admin', '0002_logentry_remove_auto_add'),
|
||||
("admin", "0002_logentry_remove_auto_add"),
|
||||
]
|
||||
|
||||
# No database changes; adds choices to action_flag.
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='logentry',
|
||||
name='action_flag',
|
||||
model_name="logentry",
|
||||
name="action_flag",
|
||||
field=models.PositiveSmallIntegerField(
|
||||
choices=[(1, 'Addition'), (2, 'Change'), (3, 'Deletion')],
|
||||
verbose_name='action flag',
|
||||
choices=[(1, "Addition"), (2, "Change"), (3, "Deletion")],
|
||||
verbose_name="action flag",
|
||||
),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -7,23 +7,32 @@ from django.db import models
|
|||
from django.urls import NoReverseMatch, reverse
|
||||
from django.utils import timezone
|
||||
from django.utils.text import get_text_list
|
||||
from django.utils.translation import gettext, gettext_lazy as _
|
||||
from django.utils.translation import gettext
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
ADDITION = 1
|
||||
CHANGE = 2
|
||||
DELETION = 3
|
||||
|
||||
ACTION_FLAG_CHOICES = (
|
||||
(ADDITION, _('Addition')),
|
||||
(CHANGE, _('Change')),
|
||||
(DELETION, _('Deletion')),
|
||||
(ADDITION, _("Addition")),
|
||||
(CHANGE, _("Change")),
|
||||
(DELETION, _("Deletion")),
|
||||
)
|
||||
|
||||
|
||||
class LogEntryManager(models.Manager):
|
||||
use_in_migrations = True
|
||||
|
||||
def log_action(self, user_id, content_type_id, object_id, object_repr, action_flag, change_message=''):
|
||||
def log_action(
|
||||
self,
|
||||
user_id,
|
||||
content_type_id,
|
||||
object_id,
|
||||
object_repr,
|
||||
action_flag,
|
||||
change_message="",
|
||||
):
|
||||
if isinstance(change_message, list):
|
||||
change_message = json.dumps(change_message)
|
||||
return self.model.objects.create(
|
||||
|
@ -38,51 +47,54 @@ class LogEntryManager(models.Manager):
|
|||
|
||||
class LogEntry(models.Model):
|
||||
action_time = models.DateTimeField(
|
||||
_('action time'),
|
||||
_("action time"),
|
||||
default=timezone.now,
|
||||
editable=False,
|
||||
)
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
models.CASCADE,
|
||||
verbose_name=_('user'),
|
||||
verbose_name=_("user"),
|
||||
)
|
||||
content_type = models.ForeignKey(
|
||||
ContentType,
|
||||
models.SET_NULL,
|
||||
verbose_name=_('content type'),
|
||||
blank=True, null=True,
|
||||
verbose_name=_("content type"),
|
||||
blank=True,
|
||||
null=True,
|
||||
)
|
||||
object_id = models.TextField(_('object id'), blank=True, null=True)
|
||||
object_id = models.TextField(_("object id"), blank=True, null=True)
|
||||
# Translators: 'repr' means representation (https://docs.python.org/library/functions.html#repr)
|
||||
object_repr = models.CharField(_('object repr'), max_length=200)
|
||||
action_flag = models.PositiveSmallIntegerField(_('action flag'), choices=ACTION_FLAG_CHOICES)
|
||||
object_repr = models.CharField(_("object repr"), max_length=200)
|
||||
action_flag = models.PositiveSmallIntegerField(
|
||||
_("action flag"), choices=ACTION_FLAG_CHOICES
|
||||
)
|
||||
# change_message is either a string or a JSON structure
|
||||
change_message = models.TextField(_('change message'), blank=True)
|
||||
change_message = models.TextField(_("change message"), blank=True)
|
||||
|
||||
objects = LogEntryManager()
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('log entry')
|
||||
verbose_name_plural = _('log entries')
|
||||
db_table = 'django_admin_log'
|
||||
ordering = ['-action_time']
|
||||
verbose_name = _("log entry")
|
||||
verbose_name_plural = _("log entries")
|
||||
db_table = "django_admin_log"
|
||||
ordering = ["-action_time"]
|
||||
|
||||
def __repr__(self):
|
||||
return str(self.action_time)
|
||||
|
||||
def __str__(self):
|
||||
if self.is_addition():
|
||||
return gettext('Added “%(object)s”.') % {'object': self.object_repr}
|
||||
return gettext("Added “%(object)s”.") % {"object": self.object_repr}
|
||||
elif self.is_change():
|
||||
return gettext('Changed “%(object)s” — %(changes)s') % {
|
||||
'object': self.object_repr,
|
||||
'changes': self.get_change_message(),
|
||||
return gettext("Changed “%(object)s” — %(changes)s") % {
|
||||
"object": self.object_repr,
|
||||
"changes": self.get_change_message(),
|
||||
}
|
||||
elif self.is_deletion():
|
||||
return gettext('Deleted “%(object)s.”') % {'object': self.object_repr}
|
||||
return gettext("Deleted “%(object)s.”") % {"object": self.object_repr}
|
||||
|
||||
return gettext('LogEntry Object')
|
||||
return gettext("LogEntry Object")
|
||||
|
||||
def is_addition(self):
|
||||
return self.action_flag == ADDITION
|
||||
|
@ -98,38 +110,62 @@ class LogEntry(models.Model):
|
|||
If self.change_message is a JSON structure, interpret it as a change
|
||||
string, properly translated.
|
||||
"""
|
||||
if self.change_message and self.change_message[0] == '[':
|
||||
if self.change_message and self.change_message[0] == "[":
|
||||
try:
|
||||
change_message = json.loads(self.change_message)
|
||||
except json.JSONDecodeError:
|
||||
return self.change_message
|
||||
messages = []
|
||||
for sub_message in change_message:
|
||||
if 'added' in sub_message:
|
||||
if sub_message['added']:
|
||||
sub_message['added']['name'] = gettext(sub_message['added']['name'])
|
||||
messages.append(gettext('Added {name} “{object}”.').format(**sub_message['added']))
|
||||
if "added" in sub_message:
|
||||
if sub_message["added"]:
|
||||
sub_message["added"]["name"] = gettext(
|
||||
sub_message["added"]["name"]
|
||||
)
|
||||
messages.append(
|
||||
gettext("Added {name} “{object}”.").format(
|
||||
**sub_message["added"]
|
||||
)
|
||||
)
|
||||
else:
|
||||
messages.append(gettext('Added.'))
|
||||
messages.append(gettext("Added."))
|
||||
|
||||
elif 'changed' in sub_message:
|
||||
sub_message['changed']['fields'] = get_text_list(
|
||||
[gettext(field_name) for field_name in sub_message['changed']['fields']], gettext('and')
|
||||
elif "changed" in sub_message:
|
||||
sub_message["changed"]["fields"] = get_text_list(
|
||||
[
|
||||
gettext(field_name)
|
||||
for field_name in sub_message["changed"]["fields"]
|
||||
],
|
||||
gettext("and"),
|
||||
)
|
||||
if 'name' in sub_message['changed']:
|
||||
sub_message['changed']['name'] = gettext(sub_message['changed']['name'])
|
||||
messages.append(gettext('Changed {fields} for {name} “{object}”.').format(
|
||||
**sub_message['changed']
|
||||
))
|
||||
if "name" in sub_message["changed"]:
|
||||
sub_message["changed"]["name"] = gettext(
|
||||
sub_message["changed"]["name"]
|
||||
)
|
||||
messages.append(
|
||||
gettext("Changed {fields} for {name} “{object}”.").format(
|
||||
**sub_message["changed"]
|
||||
)
|
||||
)
|
||||
else:
|
||||
messages.append(gettext('Changed {fields}.').format(**sub_message['changed']))
|
||||
messages.append(
|
||||
gettext("Changed {fields}.").format(
|
||||
**sub_message["changed"]
|
||||
)
|
||||
)
|
||||
|
||||
elif 'deleted' in sub_message:
|
||||
sub_message['deleted']['name'] = gettext(sub_message['deleted']['name'])
|
||||
messages.append(gettext('Deleted {name} “{object}”.').format(**sub_message['deleted']))
|
||||
elif "deleted" in sub_message:
|
||||
sub_message["deleted"]["name"] = gettext(
|
||||
sub_message["deleted"]["name"]
|
||||
)
|
||||
messages.append(
|
||||
gettext("Deleted {name} “{object}”.").format(
|
||||
**sub_message["deleted"]
|
||||
)
|
||||
)
|
||||
|
||||
change_message = ' '.join(msg[0].upper() + msg[1:] for msg in messages)
|
||||
return change_message or gettext('No fields changed.')
|
||||
change_message = " ".join(msg[0].upper() + msg[1:] for msg in messages)
|
||||
return change_message or gettext("No fields changed.")
|
||||
else:
|
||||
return self.change_message
|
||||
|
||||
|
@ -142,7 +178,10 @@ class LogEntry(models.Model):
|
|||
Return the admin URL to edit the object represented by this log entry.
|
||||
"""
|
||||
if self.content_type and self.object_id:
|
||||
url_name = 'admin:%s_%s_change' % (self.content_type.app_label, self.content_type.model)
|
||||
url_name = "admin:%s_%s_change" % (
|
||||
self.content_type.app_label,
|
||||
self.content_type.model,
|
||||
)
|
||||
try:
|
||||
return reverse(url_name, args=(quote(self.object_id),))
|
||||
except NoReverseMatch:
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue