pip |
Copyright (c) Django Software Foundation and individual contributors. | |||||
All rights reserved. | |||||
Redistribution and use in source and binary forms, with or without modification, | |||||
are permitted provided that the following conditions are met: | |||||
1. Redistributions of source code must retain the above copyright notice, | |||||
this list of conditions and the following disclaimer. | |||||
2. Redistributions in binary form must reproduce the above copyright | |||||
notice, this list of conditions and the following disclaimer in the | |||||
documentation and/or other materials provided with the distribution. | |||||
3. Neither the name of Django nor the names of its contributors may be used | |||||
to endorse or promote products derived from this software without | |||||
specific prior written permission. | |||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | |||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR | |||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | |||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | |||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Metadata-Version: 2.1 | |||||
Name: Django | |||||
Version: 2.2.7 | |||||
Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design. | |||||
Home-page: https://www.djangoproject.com/ | |||||
Author: Django Software Foundation | |||||
Author-email: foundation@djangoproject.com | |||||
License: BSD | |||||
Project-URL: Documentation, https://docs.djangoproject.com/ | |||||
Project-URL: Funding, https://www.djangoproject.com/fundraising/ | |||||
Project-URL: Source, https://github.com/django/django | |||||
Project-URL: Tracker, https://code.djangoproject.com/ | |||||
Platform: UNKNOWN | |||||
Classifier: Development Status :: 5 - Production/Stable | |||||
Classifier: Environment :: Web Environment | |||||
Classifier: Framework :: Django | |||||
Classifier: Intended Audience :: Developers | |||||
Classifier: License :: OSI Approved :: BSD License | |||||
Classifier: Operating System :: OS Independent | |||||
Classifier: Programming Language :: Python | |||||
Classifier: Programming Language :: Python :: 3 | |||||
Classifier: Programming Language :: Python :: 3.5 | |||||
Classifier: Programming Language :: Python :: 3.6 | |||||
Classifier: Programming Language :: Python :: 3.7 | |||||
Classifier: Programming Language :: Python :: 3 :: Only | |||||
Classifier: Topic :: Internet :: WWW/HTTP | |||||
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content | |||||
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI | |||||
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks | |||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules | |||||
Requires-Python: >=3.5 | |||||
Requires-Dist: pytz | |||||
Requires-Dist: sqlparse | |||||
Provides-Extra: argon2 | |||||
Requires-Dist: argon2-cffi (>=16.1.0) ; extra == 'argon2' | |||||
Provides-Extra: bcrypt | |||||
Requires-Dist: bcrypt ; extra == 'bcrypt' | |||||
Django is a high-level Python Web framework that encourages rapid development | |||||
and clean, pragmatic design. Thanks for checking it out. | |||||
All documentation is in the "``docs``" directory and online at | |||||
https://docs.djangoproject.com/en/stable/. If you're just getting started, | |||||
here's how we recommend you read the docs: | |||||
* First, read ``docs/intro/install.txt`` for instructions on installing Django. | |||||
* Next, work through the tutorials in order (``docs/intro/tutorial01.txt``, | |||||
``docs/intro/tutorial02.txt``, etc.). | |||||
* If you want to set up an actual deployment server, read | |||||
``docs/howto/deployment/index.txt`` for instructions. | |||||
* You'll probably want to read through the topical guides (in ``docs/topics``) | |||||
next; from there you can jump to the HOWTOs (in ``docs/howto``) for specific | |||||
problems, and check out the reference (``docs/ref``) for gory details. | |||||
* See ``docs/README`` for instructions on building an HTML version of the docs. | |||||
Docs are updated rigorously. If you find any problems in the docs, or think | |||||
they should be clarified in any way, please take 30 seconds to fill out a | |||||
ticket here: https://code.djangoproject.com/newticket | |||||
To get more help: | |||||
* Join the ``#django`` channel on irc.freenode.net. Lots of helpful people hang | |||||
out there. See https://en.wikipedia.org/wiki/Wikipedia:IRC/Tutorial if you're | |||||
new to IRC. | |||||
* Join the django-users mailing list, or read the archives, at | |||||
https://groups.google.com/group/django-users. | |||||
To contribute to Django: | |||||
* Check out https://docs.djangoproject.com/en/dev/internals/contributing/ for | |||||
information about getting involved. | |||||
To run Django's test suite: | |||||
* Follow the instructions in the "Unit tests" section of | |||||
``docs/internals/contributing/writing-code/unit-tests.txt``, published online at | |||||
https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/#running-the-unit-tests | |||||
Wheel-Version: 1.0 | |||||
Generator: bdist_wheel (0.33.1) | |||||
Root-Is-Purelib: true | |||||
Tag: py3-none-any | |||||
[console_scripts] | |||||
django-admin = django.core.management:execute_from_command_line | |||||
django |
from django.utils.version import get_version | |||||
VERSION = (2, 2, 7, 'final', 0) | |||||
__version__ = get_version(VERSION) | |||||
def setup(set_prefix=True): | |||||
""" | |||||
Configure the settings (this happens as a side effect of accessing the | |||||
first setting), configure logging and populate the app registry. | |||||
Set the thread-local urlresolvers script prefix if `set_prefix` is True. | |||||
""" | |||||
from django.apps import apps | |||||
from django.conf import settings | |||||
from django.urls import set_script_prefix | |||||
from django.utils.log import configure_logging | |||||
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 | |||||
) | |||||
apps.populate(settings.INSTALLED_APPS) |
""" | |||||
Invokes django-admin when the django module is run as a script. | |||||
Example: python -m django check | |||||
""" | |||||
from django.core import management | |||||
if __name__ == "__main__": | |||||
management.execute_from_command_line() |
""" | |||||
Settings and configuration for Django. | |||||
Read values from the module specified by the DJANGO_SETTINGS_MODULE environment | |||||
variable, and then from django.conf.global_settings; see the global_settings.py | |||||
for a list of all possible variables. | |||||
""" | |||||
import importlib | |||||
import os | |||||
import time | |||||
import traceback | |||||
import warnings | |||||
from pathlib import Path | |||||
import django | |||||
from django.conf import global_settings | |||||
from django.core.exceptions import ImproperlyConfigured | |||||
from django.utils.deprecation import ( | |||||
RemovedInDjango30Warning, RemovedInDjango31Warning, | |||||
) | |||||
from django.utils.functional import LazyObject, empty | |||||
ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE" | |||||
DEFAULT_CONTENT_TYPE_DEPRECATED_MSG = 'The DEFAULT_CONTENT_TYPE setting is deprecated.' | |||||
FILE_CHARSET_DEPRECATED_MSG = ( | |||||
'The FILE_CHARSET setting is deprecated. Starting with Django 3.1, all ' | |||||
'files read from disk must be UTF-8 encoded.' | |||||
) | |||||
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) | |||||
def __init__(self, value, setting_name): | |||||
self.setting_name = setting_name | |||||
class LazySettings(LazyObject): | |||||
""" | |||||
A lazy proxy for either global Django settings or a custom settings object. | |||||
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 | |||||
is used the first time settings are needed, if the user hasn't | |||||
configured settings manually. | |||||
""" | |||||
settings_module = os.environ.get(ENVIRONMENT_VARIABLE) | |||||
if not settings_module: | |||||
desc = ("setting %s" % name) if name else "settings" | |||||
raise ImproperlyConfigured( | |||||
"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)) | |||||
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 "%(settings_module)s">' % { | |||||
'settings_module': self._wrapped.SETTINGS_MODULE, | |||||
} | |||||
def __getattr__(self, name): | |||||
"""Return the value of a setting and cache it in self.__dict__.""" | |||||
if self._wrapped is empty: | |||||
self._setup(name) | |||||
val = getattr(self._wrapped, name) | |||||
self.__dict__[name] = val | |||||
return val | |||||
def __setattr__(self, name, value): | |||||
""" | |||||
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': | |||||
self.__dict__.clear() | |||||
else: | |||||
self.__dict__.pop(name, None) | |||||
super().__setattr__(name, value) | |||||
def __delattr__(self, name): | |||||
"""Delete a setting and clear it from cache if needed.""" | |||||
super().__delattr__(name) | |||||
self.__dict__.pop(name, None) | |||||
def configure(self, default_settings=global_settings, **options): | |||||
""" | |||||
Called to manually configure the settings. The 'default_settings' | |||||
parameter sets where to retrieve any unspecified values from (its | |||||
argument must support attribute access (__getattr__)). | |||||
""" | |||||
if self._wrapped is not empty: | |||||
raise RuntimeError('Settings already configured.') | |||||
holder = UserSettingsHolder(default_settings) | |||||
for name, value in options.items(): | |||||
setattr(holder, name, value) | |||||
self._wrapped = holder | |||||
@property | |||||
def configured(self): | |||||
"""Return True if the settings have already been configured.""" | |||||
return self._wrapped is not empty | |||||
@property | |||||
def DEFAULT_CONTENT_TYPE(self): | |||||
stack = traceback.extract_stack() | |||||
# Show a warning if the setting is used outside of Django. | |||||
# Stack index: -1 this line, -2 the caller. | |||||
filename, _line_number, _function_name, _text = stack[-2] | |||||
if not filename.startswith(os.path.dirname(django.__file__)): | |||||
warnings.warn( | |||||
DEFAULT_CONTENT_TYPE_DEPRECATED_MSG, | |||||
RemovedInDjango30Warning, | |||||
stacklevel=2, | |||||
) | |||||
return self.__getattr__('DEFAULT_CONTENT_TYPE') | |||||
@property | |||||
def FILE_CHARSET(self): | |||||
stack = traceback.extract_stack() | |||||
# Show a warning if the setting is used outside of Django. | |||||
# Stack index: -1 this line, -2 the caller. | |||||
filename, _line_number, _function_name, _text = stack[-2] | |||||
if not filename.startswith(os.path.dirname(django.__file__)): | |||||
warnings.warn( | |||||
FILE_CHARSET_DEPRECATED_MSG, | |||||
RemovedInDjango31Warning, | |||||
stacklevel=2, | |||||
) | |||||
return self.__getattr__('FILE_CHARSET') | |||||
class Settings: | |||||
def __init__(self, settings_module): | |||||
# update this dict from global settings (but only for ALL_CAPS settings) | |||||
for setting in dir(global_settings): | |||||
if setting.isupper(): | |||||
setattr(self, setting, getattr(global_settings, setting)) | |||||
# store the settings module in case someone later cares | |||||
self.SETTINGS_MODULE = settings_module | |||||
mod = importlib.import_module(self.SETTINGS_MODULE) | |||||
tuple_settings = ( | |||||
"INSTALLED_APPS", | |||||
"TEMPLATE_DIRS", | |||||
"LOCALE_PATHS", | |||||
) | |||||
self._explicit_settings = set() | |||||
for setting in dir(mod): | |||||
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) | |||||
setattr(self, setting, setting_value) | |||||
self._explicit_settings.add(setting) | |||||
if not self.SECRET_KEY: | |||||
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.") | |||||
if self.is_overridden('DEFAULT_CONTENT_TYPE'): | |||||
warnings.warn(DEFAULT_CONTENT_TYPE_DEPRECATED_MSG, RemovedInDjango30Warning) | |||||
if self.is_overridden('FILE_CHARSET'): | |||||
warnings.warn(FILE_CHARSET_DEPRECATED_MSG, RemovedInDjango31Warning) | |||||
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('/')) | |||||
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 | |||||
time.tzset() | |||||
def is_overridden(self, setting): | |||||
return setting in self._explicit_settings | |||||
def __repr__(self): | |||||
return '<%(cls)s "%(settings_module)s">' % { | |||||
'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 | |||||
def __init__(self, default_settings): | |||||
""" | |||||
Requests for configuration variables not in this class are satisfied | |||||
from the module specified in default_settings (if possible). | |||||
""" | |||||
self.__dict__['_deleted'] = set() | |||||
self.default_settings = default_settings | |||||
def __getattr__(self, name): | |||||
if name in self._deleted: | |||||
raise AttributeError | |||||
return getattr(self.default_settings, name) | |||||
def __setattr__(self, name, value): | |||||
self._deleted.discard(name) | |||||
if name == 'DEFAULT_CONTENT_TYPE': | |||||
warnings.warn(DEFAULT_CONTENT_TYPE_DEPRECATED_MSG, RemovedInDjango30Warning) | |||||
elif name == 'FILE_CHARSET': | |||||
warnings.warn(FILE_CHARSET_DEPRECATED_MSG, RemovedInDjango31Warning) | |||||
super().__setattr__(name, value) | |||||
def __delattr__(self, name): | |||||
self._deleted.add(name) | |||||
if hasattr(self, name): | |||||
super().__delattr__(name) | |||||
def __dir__(self): | |||||
return sorted( | |||||
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) | |||||
return deleted or set_locally or set_on_default | |||||
def __repr__(self): | |||||
return '<%(cls)s>' % { | |||||
'cls': self.__class__.__name__, | |||||
} | |||||
settings = LazySettings() |
from django.contrib import admin | |||||
# Register your models here. |
from django.apps import AppConfig | |||||
class {{ camel_case_app_name }}Config(AppConfig): | |||||
name = '{{ app_name }}' |
from django.db import models | |||||
# Create your models here. |
from django.test import TestCase | |||||
# Create your tests here. |
from django.shortcuts import render | |||||
# Create your views here. |
""" | |||||
Default Django settings. Override these with settings in the module pointed to | |||||
by the DJANGO_SETTINGS_MODULE environment variable. | |||||
""" | |||||
# This is defined here as a do-nothing function because we can't import | |||||
# django.utils.translation -- that module depends on the settings. | |||||
def gettext_noop(s): | |||||
return s | |||||
#################### | |||||
# CORE # | |||||
#################### | |||||
DEBUG = False | |||||
# Whether the framework should propagate raw exceptions rather than catching | |||||
# them. This is useful under some testing situations and should never be used | |||||
# on a live site. | |||||
DEBUG_PROPAGATE_EXCEPTIONS = False | |||||
# People who get code error notifications. | |||||
# In the format [('Full Name', 'email@example.com'), ('Full Name', 'anotheremail@example.com')] | |||||
ADMINS = [] | |||||
# List of IP addresses, as strings, that: | |||||
# * See debug comments, when DEBUG is true | |||||
# * Receive x-headers | |||||
INTERNAL_IPS = [] | |||||
# Hosts/domain names that are valid for this site. | |||||
# "*" matches anything, ".example.com" matches example.com and all subdomains | |||||
ALLOWED_HOSTS = [] | |||||
# Local time zone for this installation. All choices can be found here: | |||||
# 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' | |||||
# If you set this to True, Django will use timezone-aware datetimes. | |||||
USE_TZ = False | |||||
# Language code for this installation. All choices can be found here: | |||||
# http://www.i18nguy.com/unicode/language-identifiers.html | |||||
LANGUAGE_CODE = 'en-us' | |||||
# Languages we provide translations for, out of the box. | |||||
LANGUAGES = [ | |||||
('af', gettext_noop('Afrikaans')), | |||||
('ar', gettext_noop('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')), | |||||
('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')), | |||||
('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')), | |||||
('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')), | |||||
('th', gettext_noop('Thai')), | |||||
('tr', gettext_noop('Turkish')), | |||||
('tt', gettext_noop('Tatar')), | |||||
('udm', gettext_noop('Udmurt')), | |||||
('uk', gettext_noop('Ukrainian')), | |||||
('ur', gettext_noop('Urdu')), | |||||
('vi', gettext_noop('Vietnamese')), | |||||
('zh-hans', gettext_noop('Simplified Chinese')), | |||||
('zh-hant', gettext_noop('Traditional Chinese')), | |||||
] | |||||
# Languages using BiDi (right-to-left) layout | |||||
LANGUAGES_BIDI = ["he", "ar", "fa", "ur"] | |||||
# If you set this to False, Django will make some optimizations so as not | |||||
# to load the internationalization machinery. | |||||
USE_I18N = True | |||||
LOCALE_PATHS = [] | |||||
# Settings for language cookie | |||||
LANGUAGE_COOKIE_NAME = 'django_language' | |||||
LANGUAGE_COOKIE_AGE = None | |||||
LANGUAGE_COOKIE_DOMAIN = None | |||||
LANGUAGE_COOKIE_PATH = '/' | |||||
# If you set this to True, Django will format dates, numbers and calendars | |||||
# according to user current locale. | |||||
USE_L10N = False | |||||
# Not-necessarily-technical managers of the site. They get broken link | |||||
# notifications and other various emails. | |||||
MANAGERS = ADMINS | |||||
# Default content type and charset to use for all HttpResponse objects, if a | |||||
# MIME type isn't manually specified. These are used to construct the | |||||
# Content-Type header. | |||||
DEFAULT_CONTENT_TYPE = 'text/html' | |||||
DEFAULT_CHARSET = 'utf-8' | |||||
# Encoding of files read from disk (template and initial SQL files). | |||||
FILE_CHARSET = 'utf-8' | |||||
# Email address that error messages come from. | |||||
SERVER_EMAIL = 'root@localhost' | |||||
# Database connection info. If left empty, will default to the dummy backend. | |||||
DATABASES = {} | |||||
# Classes used to implement DB routing behavior. | |||||
DATABASE_ROUTERS = [] | |||||
# The email backend to use. For possible shortcuts see django.core.mail. | |||||
# 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' | |||||
# Host for sending email. | |||||
EMAIL_HOST = 'localhost' | |||||
# Port for sending email. | |||||
EMAIL_PORT = 25 | |||||
# Whether to send SMTP 'Date' header in the local time zone or in UTC. | |||||
EMAIL_USE_LOCALTIME = False | |||||
# Optional SMTP authentication information for EMAIL_HOST. | |||||
EMAIL_HOST_USER = '' | |||||
EMAIL_HOST_PASSWORD = '' | |||||
EMAIL_USE_TLS = False | |||||
EMAIL_USE_SSL = False | |||||
EMAIL_SSL_CERTFILE = None | |||||
EMAIL_SSL_KEYFILE = None | |||||
EMAIL_TIMEOUT = None | |||||
# List of strings representing installed apps. | |||||
INSTALLED_APPS = [] | |||||
TEMPLATES = [] | |||||
# Default form rendering class. | |||||
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates' | |||||
# Default email address to use for various automated correspondence from | |||||
# the site managers. | |||||
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] ' | |||||
# Whether to append trailing slashes to URLs. | |||||
APPEND_SLASH = True | |||||
# Whether to prepend the "www." subdomain to URLs that don't have it. | |||||
PREPEND_WWW = False | |||||
# Override the server-derived value of SCRIPT_NAME | |||||
FORCE_SCRIPT_NAME = None | |||||
# List of compiled regular expression objects representing User-Agent strings | |||||
# that are not allowed to visit any page, systemwide. Use this for bad | |||||
# robots/crawlers. Here are a few examples: | |||||
# import re | |||||
# DISALLOWED_USER_AGENTS = [ | |||||
# re.compile(r'^NaverBot.*'), | |||||
# re.compile(r'^EmailSiphon.*'), | |||||
# re.compile(r'^SiteSucker.*'), | |||||
# re.compile(r'^sohu-search'), | |||||
# ] | |||||
DISALLOWED_USER_AGENTS = [] | |||||
ABSOLUTE_URL_OVERRIDES = {} | |||||
# List of compiled regular expression objects representing URLs that need not | |||||
# be reported by BrokenLinkEmailsMiddleware. Here are a few examples: | |||||
# import re | |||||
# IGNORABLE_404_URLS = [ | |||||
# re.compile(r'^/apple-touch-icon.*\.png$'), | |||||
# re.compile(r'^/favicon.ico$'), | |||||
# re.compile(r'^/robots.txt$'), | |||||
# re.compile(r'^/phpmyadmin/'), | |||||
# re.compile(r'\.(cgi|php|pl)$'), | |||||
# ] | |||||
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 = '' | |||||
# Default file storage mechanism that holds media. | |||||
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 = '' | |||||
# URL that handles the media served from MEDIA_ROOT. | |||||
# Examples: "http://example.com/media/", "http://media.example.com/" | |||||
MEDIA_URL = '' | |||||
# Absolute path to the directory static files should be collected to. | |||||
# Example: "/var/www/example.com/static/" | |||||
STATIC_ROOT = None | |||||
# URL that handles the static files served from STATIC_ROOT. | |||||
# Example: "http://example.com/static/", "http://static.example.com/" | |||||
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', | |||||
] | |||||
# Maximum size, in bytes, of a request before it will be streamed to the | |||||
# file system instead of into memory. | |||||
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 # i.e. 2.5 MB | |||||
# Maximum size in bytes of request data (excluding file uploads) that will be | |||||
# read before a SuspiciousOperation (RequestDataTooBig) is raised. | |||||
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 # i.e. 2.5 MB | |||||
# Maximum number of GET/POST parameters that will be read before a | |||||
# SuspiciousOperation (TooManyFieldsSent) is raised. | |||||
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000 | |||||
# Directory in which upload streamed files will be temporarily saved. A value of | |||||
# `None` will make Django use the operating system's default temporary directory | |||||
# (i.e. "/tmp" on *nix systems). | |||||
FILE_UPLOAD_TEMP_DIR = None | |||||
# The numeric mode to set newly-uploaded files to. The value should be a mode | |||||
# you'd pass directly to os.chmod; see https://docs.python.org/library/os.html#files-and-directories. | |||||
FILE_UPLOAD_PERMISSIONS = None | |||||
# The numeric mode to assign to newly-created directories, when uploading files. | |||||
# The value should be a mode as you'd pass to os.chmod; | |||||
# see https://docs.python.org/library/os.html#files-and-directories. | |||||
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None | |||||
# Python module path where user will place custom format definition. | |||||
# The directory where this setting is pointing should contain subdirectories | |||||
# named as the locales, containing a formats.py file | |||||
# (i.e. "myproject.locale" for myproject/locale/en/formats.py etc. use) | |||||
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' | |||||
# 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' | |||||
# Default formatting for time objects. See all available format strings here: | |||||
# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date | |||||
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' | |||||
# 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' | |||||
# 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' | |||||
# 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' | |||||
# 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', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06' | |||||
'%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006' | |||||
'%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006' | |||||
'%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006' | |||||
'%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006' | |||||
] | |||||
# Default formats to be used when parsing times 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 | |||||
TIME_INPUT_FORMATS = [ | |||||
'%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, | |||||
# 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 | |||||
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', # '2006-10-25' | |||||
'%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', # '10/25/2006' | |||||
'%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', # '10/25/06' | |||||
] | |||||
# First day of week, to be used on calendars | |||||
# 0 means Sunday, 1 means Monday... | |||||
FIRST_DAY_OF_WEEK = 0 | |||||
# Decimal separator symbol | |||||
DECIMAL_SEPARATOR = '.' | |||||
# Boolean that sets whether to add thousand separator when formatting numbers | |||||
USE_THOUSAND_SEPARATOR = False | |||||
# Number of digits that will be together, when splitting them by | |||||
# THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands... | |||||
NUMBER_GROUPING = 0 | |||||
# Thousand separator symbol | |||||
THOUSAND_SEPARATOR = ',' | |||||
# The tablespaces to use for each model when not specified otherwise. | |||||
DEFAULT_TABLESPACE = '' | |||||
DEFAULT_INDEX_TABLESPACE = '' | |||||
# Default X-Frame-Options header value | |||||
X_FRAME_OPTIONS = 'SAMEORIGIN' | |||||
USE_X_FORWARDED_HOST = False | |||||
USE_X_FORWARDED_PORT = False | |||||
# The Python dotted path to the WSGI application that Django's internal server | |||||
# (runserver) will use. If `None`, the return value of | |||||
# 'django.core.wsgi.get_wsgi_application' is used, thus preserving the same | |||||
# behavior as previous versions of Django. Otherwise this should point to an | |||||
# actual WSGI application object. | |||||
WSGI_APPLICATION = None | |||||
# If your Django app is behind a proxy that sets a header to specify secure | |||||
# connections, AND that proxy ensures that user-submitted headers with the | |||||
# same name are ignored (so that people can't spoof it), set this value to | |||||
# a tuple of (header_name, header_value). For any requests that come in with | |||||
# that header/value, request.is_secure() will return True. | |||||
# WARNING! Only set this if you fully understand what you're doing. Otherwise, | |||||
# you may be opening yourself up to a security risk. | |||||
SECURE_PROXY_SSL_HEADER = None | |||||
############## | |||||
# MIDDLEWARE # | |||||
############## | |||||
# List of middleware to use. Order is important; in the request phase, these | |||||
# middleware will be applied in the order given, and in the response | |||||
# phase the middleware will be applied in reverse order. | |||||
MIDDLEWARE = [] | |||||
############ | |||||
# SESSIONS # | |||||
############ | |||||
# Cache to store session data if using the cache session backend. | |||||
SESSION_CACHE_ALIAS = 'default' | |||||
# Cookie name. This can be whatever you want. | |||||
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. | |||||
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 = '/' | |||||
# 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', or None to disable the flag. | |||||
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' | |||||
# 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' | |||||
######### | |||||
# CACHE # | |||||
######### | |||||
# The cache backends to use. | |||||
CACHES = { | |||||
'default': { | |||||
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', | |||||
} | |||||
} | |||||
CACHE_MIDDLEWARE_KEY_PREFIX = '' | |||||
CACHE_MIDDLEWARE_SECONDS = 600 | |||||
CACHE_MIDDLEWARE_ALIAS = 'default' | |||||
################## | |||||
# AUTHENTICATION # | |||||
################## | |||||
AUTH_USER_MODEL = 'auth.User' | |||||
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend'] | |||||
LOGIN_URL = '/accounts/login/' | |||||
LOGIN_REDIRECT_URL = '/accounts/profile/' | |||||
LOGOUT_REDIRECT_URL = None | |||||
# The number of days a password reset link is valid for | |||||
PASSWORD_RESET_TIMEOUT_DAYS = 3 | |||||
# the first hasher in this list is the preferred algorithm. any | |||||
# 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', | |||||
] | |||||
AUTH_PASSWORD_VALIDATORS = [] | |||||
########### | |||||
# SIGNING # | |||||
########### | |||||
SIGNING_BACKEND = 'django.core.signing.TimestampSigner' | |||||
######## | |||||
# CSRF # | |||||
######## | |||||
# 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' | |||||
# Settings for CSRF cookie. | |||||
CSRF_COOKIE_NAME = 'csrftoken' | |||||
CSRF_COOKIE_AGE = 60 * 60 * 24 * 7 * 52 | |||||
CSRF_COOKIE_DOMAIN = None | |||||
CSRF_COOKIE_PATH = '/' | |||||
CSRF_COOKIE_SECURE = False | |||||
CSRF_COOKIE_HTTPONLY = False | |||||
CSRF_COOKIE_SAMESITE = 'Lax' | |||||
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN' | |||||
CSRF_TRUSTED_ORIGINS = [] | |||||
CSRF_USE_SESSIONS = False | |||||
############ | |||||
# MESSAGES # | |||||
############ | |||||
# Class to use as messages backend | |||||
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. | |||||
########### | |||||
# LOGGING # | |||||
########### | |||||
# The callable to use to configure logging | |||||
LOGGING_CONFIG = 'logging.config.dictConfig' | |||||
# Custom logging configuration. | |||||
LOGGING = {} | |||||
# 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' | |||||
########### | |||||
# TESTING # | |||||
########### | |||||
# The name of the class to use to run the test suite | |||||
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) | |||||
TEST_NON_SERIALIZED_APPS = [] | |||||
############ | |||||
# FIXTURES # | |||||
############ | |||||
# The list of directories to search for fixtures | |||||
FIXTURE_DIRS = [] | |||||
############### | |||||
# STATICFILES # | |||||
############### | |||||
# A list of locations of additional static files | |||||
STATICFILES_DIRS = [] | |||||
# The default file storage backend used during the build process | |||||
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.DefaultStorageFinder', | |||||
] | |||||
############## | |||||
# MIGRATIONS # | |||||
############## | |||||
# Migration module overrides for apps, by app label. | |||||
MIGRATION_MODULES = {} | |||||
################# | |||||
# SYSTEM CHECKS # | |||||
################# | |||||
# List of all issues generated by system checks that should be silenced. Light | |||||
# issues like warnings, infos or debugs will not generate a message. Silencing | |||||
# serious issues like errors and criticals does not result in hiding the | |||||
# message, but Django will not stop you from e.g. running server. | |||||
SILENCED_SYSTEM_CHECKS = [] | |||||
####################### | |||||
# SECURITY MIDDLEWARE # | |||||
####################### | |||||
SECURE_BROWSER_XSS_FILTER = False | |||||
SECURE_CONTENT_TYPE_NOSNIFF = False | |||||
SECURE_HSTS_INCLUDE_SUBDOMAINS = False | |||||
SECURE_HSTS_PRELOAD = False | |||||
SECURE_HSTS_SECONDS = 0 | |||||
SECURE_REDIRECT_EXEMPT = [] | |||||
SECURE_SSL_HOST = None | |||||
SECURE_SSL_REDIRECT = False |
""" | |||||
LANG_INFO is a dictionary structure to provide meta information about languages. | |||||
About name_local: capitalize it as if your language name was appearing | |||||
inside a sentence in your language. | |||||
The 'fallback' key can be used to specify a special fallback logic which doesn't | |||||
follow the traditional 'fr-ca' -> 'fr' fallback logic. | |||||
""" | |||||
LANG_INFO = { | |||||
'af': { | |||||
'bidi': False, | |||||
'code': 'af', | |||||
'name': 'Afrikaans', | |||||
'name_local': 'Afrikaans', | |||||
}, | |||||
'ar': { | |||||
'bidi': True, | |||||
'code': 'ar', | |||||
'name': 'Arabic', | |||||
'name_local': 'العربيّة', | |||||
}, | |||||
'ast': { | |||||
'bidi': False, | |||||
'code': 'ast', | |||||
'name': 'Asturian', | |||||
'name_local': 'asturianu', | |||||
}, | |||||
'az': { | |||||
'bidi': True, | |||||
'code': 'az', | |||||
'name': 'Azerbaijani', | |||||
'name_local': 'Azərbaycanca', | |||||
}, | |||||
'be': { | |||||
'bidi': False, | |||||
'code': 'be', | |||||
'name': 'Belarusian', | |||||
'name_local': 'беларуская', | |||||
}, | |||||
'bg': { | |||||
'bidi': False, | |||||
'code': 'bg', | |||||
'name': 'Bulgarian', | |||||
'name_local': 'български', | |||||
}, | |||||
'bn': { | |||||
'bidi': False, | |||||
'code': 'bn', | |||||
'name': 'Bengali', | |||||
'name_local': 'বাংলা', | |||||
}, | |||||
'br': { | |||||
'bidi': False, | |||||
'code': 'br', | |||||
'name': 'Breton', | |||||
'name_local': 'brezhoneg', | |||||
}, | |||||
'bs': { | |||||
'bidi': False, | |||||
'code': 'bs', | |||||
'name': 'Bosnian', | |||||
'name_local': 'bosanski', | |||||
}, | |||||
'ca': { | |||||
'bidi': False, | |||||
'code': 'ca', | |||||
'name': 'Catalan', | |||||
'name_local': 'català', | |||||
}, | |||||
'cs': { | |||||
'bidi': False, | |||||
'code': 'cs', | |||||
'name': 'Czech', | |||||
'name_local': 'česky', | |||||
}, | |||||
'cy': { | |||||
'bidi': False, | |||||
'code': 'cy', | |||||
'name': 'Welsh', | |||||
'name_local': 'Cymraeg', | |||||
}, | |||||
'da': { | |||||
'bidi': False, | |||||
'code': 'da', | |||||
'name': 'Danish', | |||||
'name_local': 'dansk', | |||||
}, | |||||
'de': { | |||||
'bidi': False, | |||||
'code': 'de', | |||||
'name': 'German', | |||||
'name_local': 'Deutsch', | |||||
}, | |||||
'dsb': { | |||||
'bidi': False, | |||||
'code': 'dsb', | |||||
'name': 'Lower Sorbian', | |||||
'name_local': 'dolnoserbski', | |||||
}, | |||||
'el': { | |||||
'bidi': False, | |||||
'code': 'el', | |||||
'name': 'Greek', | |||||
'name_local': 'Ελληνικά', | |||||
}, | |||||
'en': { | |||||
'bidi': False, | |||||
'code': 'en', | |||||
'name': 'English', | |||||
'name_local': 'English', | |||||
}, | |||||
'en-au': { | |||||
'bidi': False, | |||||
'code': 'en-au', | |||||
'name': 'Australian English', | |||||
'name_local': 'Australian English', | |||||
}, | |||||
'en-gb': { | |||||
'bidi': False, | |||||
'code': 'en-gb', | |||||
'name': 'British English', | |||||
'name_local': 'British English', | |||||
}, | |||||
'eo': { | |||||
'bidi': False, | |||||
'code': 'eo', | |||||
'name': 'Esperanto', | |||||
'name_local': 'Esperanto', | |||||
}, | |||||
'es': { | |||||
'bidi': False, | |||||
'code': 'es', | |||||
'name': 'Spanish', | |||||
'name_local': 'español', | |||||
}, | |||||
'es-ar': { | |||||
'bidi': False, | |||||
'code': 'es-ar', | |||||
'name': 'Argentinian Spanish', | |||||
'name_local': 'español de Argentina', | |||||
}, | |||||
'es-co': { | |||||
'bidi': False, | |||||
'code': 'es-co', | |||||
'name': 'Colombian Spanish', | |||||
'name_local': 'español de Colombia', | |||||
}, | |||||
'es-mx': { | |||||
'bidi': False, | |||||
'code': 'es-mx', | |||||
'name': 'Mexican Spanish', | |||||
'name_local': 'español de Mexico', | |||||
}, | |||||
'es-ni': { | |||||
'bidi': False, | |||||
'code': 'es-ni', | |||||
'name': 'Nicaraguan Spanish', | |||||
'name_local': 'español de Nicaragua', | |||||
}, | |||||
'es-ve': { | |||||
'bidi': False, | |||||
'code': 'es-ve', | |||||
'name': 'Venezuelan Spanish', | |||||
'name_local': 'español de Venezuela', | |||||
}, | |||||
'et': { | |||||
'bidi': False, | |||||
'code': 'et', | |||||
'name': 'Estonian', | |||||
'name_local': 'eesti', | |||||
}, | |||||
'eu': { | |||||
'bidi': False, | |||||
'code': 'eu', | |||||
'name': 'Basque', | |||||
'name_local': 'Basque', | |||||
}, | |||||
'fa': { | |||||
'bidi': True, | |||||
'code': 'fa', | |||||
'name': 'Persian', | |||||
'name_local': 'فارسی', | |||||
}, | |||||
'fi': { | |||||
'bidi': False, | |||||
'code': 'fi', | |||||
'name': 'Finnish', | |||||
'name_local': 'suomi', | |||||
}, | |||||
'fr': { | |||||
'bidi': False, | |||||
'code': 'fr', | |||||
'name': 'French', | |||||
'name_local': 'français', | |||||
}, | |||||
'fy': { | |||||
'bidi': False, | |||||
'code': 'fy', | |||||
'name': 'Frisian', | |||||
'name_local': 'frysk', | |||||
}, | |||||
'ga': { | |||||
'bidi': False, | |||||
'code': 'ga', | |||||
'name': 'Irish', | |||||
'name_local': 'Gaeilge', | |||||
}, | |||||
'gd': { | |||||
'bidi': False, | |||||
'code': 'gd', | |||||
'name': 'Scottish Gaelic', | |||||
'name_local': 'Gàidhlig', | |||||
}, | |||||
'gl': { | |||||
'bidi': False, | |||||
'code': 'gl', | |||||
'name': 'Galician', | |||||
'name_local': 'galego', | |||||
}, | |||||
'he': { | |||||
'bidi': True, | |||||
'code': 'he', | |||||
'name': 'Hebrew', | |||||
'name_local': 'עברית', | |||||
}, | |||||
'hi': { | |||||
'bidi': False, | |||||
'code': 'hi', | |||||
'name': 'Hindi', | |||||
'name_local': 'Hindi', | |||||
}, | |||||
'hr': { | |||||
'bidi': False, | |||||
'code': 'hr', | |||||
'name': 'Croatian', | |||||
'name_local': 'Hrvatski', | |||||
}, | |||||
'hsb': { | |||||
'bidi': False, | |||||
'code': 'hsb', | |||||
'name': 'Upper Sorbian', | |||||
'name_local': 'hornjoserbsce', | |||||
}, | |||||
'hu': { | |||||
'bidi': False, | |||||
'code': 'hu', | |||||
'name': 'Hungarian', | |||||
'name_local': 'Magyar', | |||||
}, | |||||
'hy': { | |||||
'bidi': False, | |||||
'code': 'hy', | |||||
'name': 'Armenian', | |||||
'name_local': 'հայերեն', | |||||
}, | |||||
'ia': { | |||||
'bidi': False, | |||||
'code': 'ia', | |||||
'name': 'Interlingua', | |||||
'name_local': 'Interlingua', | |||||
}, | |||||
'io': { | |||||
'bidi': False, | |||||
'code': 'io', | |||||
'name': 'Ido', | |||||
'name_local': 'ido', | |||||
}, | |||||
'id': { | |||||
'bidi': False, | |||||
'code': 'id', | |||||
'name': 'Indonesian', | |||||
'name_local': 'Bahasa Indonesia', | |||||
}, | |||||
'is': { | |||||
'bidi': False, | |||||
'code': 'is', | |||||
'name': 'Icelandic', | |||||
'name_local': 'Íslenska', | |||||
}, | |||||
'it': { | |||||
'bidi': False, | |||||
'code': 'it', | |||||
'name': 'Italian', | |||||
'name_local': 'italiano', | |||||
}, | |||||
'ja': { | |||||
'bidi': False, | |||||
'code': 'ja', | |||||
'name': 'Japanese', | |||||
'name_local': '日本語', | |||||
}, | |||||
'ka': { | |||||
'bidi': False, | |||||
'code': 'ka', | |||||
'name': 'Georgian', | |||||
'name_local': 'ქართული', | |||||
}, | |||||
'kab': { | |||||
'bidi': False, | |||||
'code': 'kab', | |||||
'name': 'Kabyle', | |||||
'name_local': 'taqbaylit', | |||||
}, | |||||
'kk': { | |||||
'bidi': False, | |||||
'code': 'kk', | |||||
'name': 'Kazakh', | |||||
'name_local': 'Қазақ', | |||||
}, | |||||
'km': { | |||||
'bidi': False, | |||||
'code': 'km', | |||||
'name': 'Khmer', | |||||
'name_local': 'Khmer', | |||||
}, | |||||
'kn': { | |||||
'bidi': False, | |||||
'code': 'kn', | |||||
'name': 'Kannada', | |||||
'name_local': 'Kannada', | |||||
}, | |||||
'ko': { | |||||
'bidi': False, | |||||
'code': 'ko', | |||||
'name': 'Korean', | |||||
'name_local': '한국어', | |||||
}, | |||||
'lb': { | |||||
'bidi': False, | |||||
'code': 'lb', | |||||
'name': 'Luxembourgish', | |||||
'name_local': 'Lëtzebuergesch', | |||||
}, | |||||
'lt': { | |||||
'bidi': False, | |||||
'code': 'lt', | |||||
'name': 'Lithuanian', | |||||
'name_local': 'Lietuviškai', | |||||
}, | |||||
'lv': { | |||||
'bidi': False, | |||||
'code': 'lv', | |||||
'name': 'Latvian', | |||||
'name_local': 'latviešu', | |||||
}, | |||||
'mk': { | |||||
'bidi': False, | |||||
'code': 'mk', | |||||
'name': 'Macedonian', | |||||
'name_local': 'Македонски', | |||||
}, | |||||
'ml': { | |||||
'bidi': False, | |||||
'code': 'ml', | |||||
'name': 'Malayalam', | |||||
'name_local': 'Malayalam', | |||||
}, | |||||
'mn': { | |||||
'bidi': False, | |||||
'code': 'mn', | |||||
'name': 'Mongolian', | |||||
'name_local': 'Mongolian', | |||||
}, | |||||
'mr': { | |||||
'bidi': False, | |||||
'code': 'mr', | |||||
'name': 'Marathi', | |||||
'name_local': 'मराठी', | |||||
}, | |||||
'my': { | |||||
'bidi': False, | |||||
'code': 'my', | |||||
'name': 'Burmese', | |||||
'name_local': 'မြန်မာဘာသာ', | |||||
}, | |||||
'nb': { | |||||
'bidi': False, | |||||
'code': 'nb', | |||||
'name': 'Norwegian Bokmal', | |||||
'name_local': 'norsk (bokmål)', | |||||
}, | |||||
'ne': { | |||||
'bidi': False, | |||||
'code': 'ne', | |||||
'name': 'Nepali', | |||||
'name_local': 'नेपाली', | |||||
}, | |||||
'nl': { | |||||
'bidi': False, | |||||
'code': 'nl', | |||||
'name': 'Dutch', | |||||
'name_local': 'Nederlands', | |||||
}, | |||||
'nn': { | |||||
'bidi': False, | |||||
'code': 'nn', | |||||
'name': 'Norwegian Nynorsk', | |||||
'name_local': 'norsk (nynorsk)', | |||||
}, | |||||
'no': { | |||||
'bidi': False, | |||||
'code': 'no', | |||||
'name': 'Norwegian', | |||||
'name_local': 'norsk', | |||||
}, | |||||
'os': { | |||||
'bidi': False, | |||||
'code': 'os', | |||||
'name': 'Ossetic', | |||||
'name_local': 'Ирон', | |||||
}, | |||||
'pa': { | |||||
'bidi': False, | |||||
'code': 'pa', | |||||
'name': 'Punjabi', | |||||
'name_local': 'Punjabi', | |||||
}, | |||||
'pl': { | |||||
'bidi': False, | |||||
'code': 'pl', | |||||
'name': 'Polish', | |||||
'name_local': 'polski', | |||||
}, | |||||
'pt': { | |||||
'bidi': False, | |||||
'code': 'pt', | |||||
'name': 'Portuguese', | |||||
'name_local': 'Português', | |||||
}, | |||||
'pt-br': { | |||||
'bidi': False, | |||||
'code': 'pt-br', | |||||
'name': 'Brazilian Portuguese', | |||||
'name_local': 'Português Brasileiro', | |||||
}, | |||||
'ro': { | |||||
'bidi': False, | |||||
'code': 'ro', | |||||
'name': 'Romanian', | |||||
'name_local': 'Română', | |||||
}, | |||||
'ru': { | |||||
'bidi': False, | |||||
'code': 'ru', | |||||
'name': 'Russian', | |||||
'name_local': 'Русский', | |||||
}, | |||||
'sk': { | |||||
'bidi': False, | |||||
'code': 'sk', | |||||
'name': 'Slovak', | |||||
'name_local': 'Slovensky', | |||||
}, | |||||
'sl': { | |||||
'bidi': False, | |||||
'code': 'sl', | |||||
'name': 'Slovenian', | |||||
'name_local': 'Slovenščina', | |||||
}, | |||||
'sq': { | |||||
'bidi': False, | |||||
'code': 'sq', | |||||
'name': 'Albanian', | |||||
'name_local': 'shqip', | |||||
}, | |||||
'sr': { | |||||
'bidi': False, | |||||
'code': 'sr', | |||||
'name': 'Serbian', | |||||
'name_local': 'српски', | |||||
}, | |||||
'sr-latn': { | |||||
'bidi': False, | |||||
'code': 'sr-latn', | |||||
'name': 'Serbian Latin', | |||||
'name_local': 'srpski (latinica)', | |||||
}, | |||||
'sv': { | |||||
'bidi': False, | |||||
'code': 'sv', | |||||
'name': 'Swedish', | |||||
'name_local': 'svenska', | |||||
}, | |||||
'sw': { | |||||
'bidi': False, | |||||
'code': 'sw', | |||||
'name': 'Swahili', | |||||
'name_local': 'Kiswahili', | |||||
}, | |||||
'ta': { | |||||
'bidi': False, | |||||
'code': 'ta', | |||||
'name': 'Tamil', | |||||
'name_local': 'தமிழ்', | |||||
}, | |||||
'te': { | |||||
'bidi': False, | |||||
'code': 'te', | |||||
'name': 'Telugu', | |||||
'name_local': 'తెలుగు', | |||||
}, | |||||
'th': { | |||||
'bidi': False, | |||||
'code': 'th', | |||||
'name': 'Thai', | |||||
'name_local': 'ภาษาไทย', | |||||
}, | |||||
'tr': { | |||||
'bidi': False, | |||||
'code': 'tr', | |||||
'name': 'Turkish', | |||||
'name_local': 'Türkçe', | |||||
}, | |||||
'tt': { | |||||
'bidi': False, | |||||
'code': 'tt', | |||||
'name': 'Tatar', | |||||
'name_local': 'Татарча', | |||||
}, | |||||
'udm': { | |||||
'bidi': False, | |||||
'code': 'udm', | |||||
'name': 'Udmurt', | |||||
'name_local': 'Удмурт', | |||||
}, | |||||
'uk': { | |||||
'bidi': False, | |||||
'code': 'uk', | |||||
'name': 'Ukrainian', | |||||
'name_local': 'Українська', | |||||
}, | |||||
'ur': { | |||||
'bidi': True, | |||||
'code': 'ur', | |||||
'name': 'Urdu', | |||||
'name_local': 'اردو', | |||||
}, | |||||
'vi': { | |||||
'bidi': False, | |||||
'code': 'vi', | |||||
'name': 'Vietnamese', | |||||
'name_local': 'Tiếng Việt', | |||||
}, | |||||
'zh-cn': { | |||||
'fallback': ['zh-hans'], | |||||
}, | |||||
'zh-hans': { | |||||
'bidi': False, | |||||
'code': 'zh-hans', | |||||
'name': 'Simplified Chinese', | |||||
'name_local': '简体中文', | |||||
}, | |||||
'zh-hant': { | |||||
'bidi': False, | |||||
'code': 'zh-hant', | |||||
'name': 'Traditional Chinese', | |||||
'name_local': '繁體中文', | |||||
}, | |||||
'zh-hk': { | |||||
'fallback': ['zh-hant'], | |||||
}, | |||||
'zh-mo': { | |||||
'fallback': ['zh-hant'], | |||||
}, | |||||
'zh-my': { | |||||
'fallback': ['zh-hans'], | |||||
}, | |||||
'zh-sg': { | |||||
'fallback': ['zh-hans'], | |||||
}, | |||||
'zh-tw': { | |||||
'fallback': ['zh-hant'], | |||||
}, | |||||
} |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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 = | |||||
# YEAR_MONTH_FORMAT = | |||||
MONTH_DAY_FORMAT = 'j. F' | |||||
SHORT_DATE_FORMAT = 'd.m.Y' | |||||
# SHORT_DATETIME_FORMAT = | |||||
# 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 | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = ',' | |||||
THOUSAND_SEPARATOR = ' ' # Non-breaking space | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
FIRST_DAY_OF_WEEK = 1 # Astelehena | |||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax, | |||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = ',' | |||||
THOUSAND_SEPARATOR = '.' | |||||
NUMBER_GROUPING = 3 |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
FIRST_DAY_OF_WEEK = 6 | |||||
# The *_INPUT_FORMATS strings use the Python strftime format syntax, | |||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = '.' | |||||
THOUSAND_SEPARATOR = ',' | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
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' | |||||
] | |||||
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', # '20.3.2014' | |||||
'%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', # '20.3.14' | |||||
] | |||||
TIME_INPUT_FORMATS = [ | |||||
'%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 | |||||
NUMBER_GROUPING = 3 |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
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', '%d/%m/%y', # '25/10/2006', '25/10/06' | |||||
'%d.%m.%Y', '%d.%m.%y', # Swiss [fr_CH), '25.10.2006', '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', # '25/10/2006' | |||||
'%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', # Swiss (fr_CH), '25.10.2006' | |||||
] | |||||
DECIMAL_SEPARATOR = ',' | |||||
THOUSAND_SEPARATOR = '\xa0' # non-breaking space | |||||
NUMBER_GROUPING = 3 |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# The *_FORMAT strings use the Django date format syntax, | |||||
# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date | |||||
# DATE_FORMAT = | |||||
# TIME_FORMAT = | |||||
# DATETIME_FORMAT = | |||||
# YEAR_MONTH_FORMAT = | |||||
# MONTH_DAY_FORMAT = | |||||
# SHORT_DATE_FORMAT = | |||||
# SHORT_DATETIME_FORMAT = | |||||
# 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 | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
# DECIMAL_SEPARATOR = | |||||
# THOUSAND_SEPARATOR = | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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 = | |||||
# YEAR_MONTH_FORMAT = | |||||
MONTH_DAY_FORMAT = 'j F' | |||||
SHORT_DATE_FORMAT = 'j M Y' | |||||
# SHORT_DATETIME_FORMAT = | |||||
# 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 | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = '.' | |||||
THOUSAND_SEPARATOR = ',' | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
# YEAR_MONTH_FORMAT = | |||||
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, | |||||
# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = '.' | |||||
THOUSAND_SEPARATOR = ',' | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
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 = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = ',' | |||||
THOUSAND_SEPARATOR = '.' | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
# 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 | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = '.' | |||||
THOUSAND_SEPARATOR = ',' | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
# DATETIME_FORMAT = | |||||
# YEAR_MONTH_FORMAT = | |||||
MONTH_DAY_FORMAT = 'j F' | |||||
SHORT_DATE_FORMAT = 'd-m-Y' | |||||
# SHORT_DATETIME_FORMAT = | |||||
# 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 | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = '.' | |||||
THOUSAND_SEPARATOR = ',' | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
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.', '%d.%m.%y.', # '25.10.2006.', '25.10.06.' | |||||
'%d. %m. %Y.', '%d. %m. %y.', # '25. 10. 2006.', '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' | |||||
'%Y-%m-%d', # '2006-10-25' | |||||
'%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 = '.' | |||||
NUMBER_GROUPING = 3 |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
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.' | |||||
] | |||||
TIME_INPUT_FORMATS = [ | |||||
'%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.', # '2006.10.25.' | |||||
] | |||||
DECIMAL_SEPARATOR = ',' | |||||
THOUSAND_SEPARATOR = ' ' # Non-breaking space | |||||
NUMBER_GROUPING = 3 |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
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' | |||||
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', '%d/%m/%y', # '25-10-09', 25/10/09' | |||||
'%d-%m-%Y', '%d/%m/%Y', # '25-10-2009', 25/10/2009' | |||||
'%d %b %Y', # '25 Oct 2006', | |||||
'%d %B %Y', # '25 October 2006' | |||||
] | |||||
TIME_INPUT_FORMATS = [ | |||||
'%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', # '25-10-2009' | |||||
'%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' | |||||
'%d-%m-%y', # '25-10-09'' | |||||
'%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', # '10/25/06' | |||||
'%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' | |||||
'%m/%d/%Y', # '10/25/2009' | |||||
] | |||||
DECIMAL_SEPARATOR = ',' | |||||
THOUSAND_SEPARATOR = '.' | |||||
NUMBER_GROUPING = 3 |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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 = | |||||
YEAR_MONTH_FORMAT = 'F Y' | |||||
MONTH_DAY_FORMAT = 'j. F' | |||||
SHORT_DATE_FORMAT = 'j.n.Y' | |||||
# SHORT_DATETIME_FORMAT = | |||||
# 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 | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = ',' | |||||
THOUSAND_SEPARATOR = '.' | |||||
NUMBER_GROUPING = 3 |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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 | |||||
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', '%Y/%m/%d', # '25/10/2006', '2008/10/25' | |||||
'%d-%m-%Y', '%Y-%m-%d', # '25-10-2006', '2008-10-25' | |||||
'%d-%m-%y', '%d/%m/%y', # '25-10-06', '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' | |||||
'%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', # '2006-10-25' | |||||
'%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 = '.' | |||||
NUMBER_GROUPING = 3 |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
# 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 | |||||
# DATE_INPUT_FORMATS = | |||||
# TIME_INPUT_FORMATS = | |||||
# DATETIME_INPUT_FORMATS = | |||||
DECIMAL_SEPARATOR = '.' | |||||
THOUSAND_SEPARATOR = ',' | |||||
# NUMBER_GROUPING = |
# This file is distributed under the same license as the Django package. | |||||
# | |||||
# 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' | |||||
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', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06' | |||||
# '%d %b %Y', '%d %b, %Y', '%d %b. %Y', # '25 Oct 2006', '25 Oct, 2006', '25 Oct. 2006' | |||||
# '%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006' | |||||
# '%d.%m.%Y', '%d.%m.%y', # '25.10.2006', '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' | |||||
'%Y-%m-%d', # '2006-10-25' | |||||
'%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' | |||||
'%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', # '10/25/2006' | |||||
'%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', # '10/25/06' | |||||
] | |||||
DECIMAL_SEPARATOR = '.' | |||||
THOUSAND_SEPARATOR = " " | |||||
NUMBER_GROUPING = 3 |