base settings

This commit is contained in:
e-serg 2024-04-13 13:02:35 +03:00
parent a60ae7d045
commit fe349e2f88
2 changed files with 71 additions and 30 deletions

View File

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
from django.apps import AppConfig
from django.utils.translation import gettext_lazy
class RosmorportTstsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'rosmorport_tsts'
verbose_name = gettext_lazy("РОСМОРПОРТ")

View File

@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
"""
Django settings for rosmorport_tsts project.
@ -10,8 +11,22 @@ For the full list of settings and their values, see
https://docs.djangoproject.com/en/5.0/ref/settings/
"""
import socket
from pathlib import Path
# Подключаем секретные настройки в зависимости от машины.
# ATTENTION: В git-репозитории этих файлов нет.
# Воспользуйтесь файлом _my_secret_sample.py как образцом
if socket.gethostname() == 'erjemin-home':
# офисный комп (Windows)
from rosmorport_tsts.my_secret_dev_home_win import *
elif socket.gethostname() in ['m1.N1', 'm1.local', ]:
# домашний комп (MacOS)
from rosmorport_tsts.my_secret_dev_home_mac import *
elif socket.gethostname() in ['orangepi5', 'vm678195', ]:
# продакшн (боевой) сервер
from rosmorport_tsts.my_secret_prod import *
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
@ -20,16 +35,17 @@ BASE_DIR = Path(__file__).resolve().parent.parent
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure--odm9(0)ad+azp)m6zlwc&j)qpusm_sbh02+7ap&-%fzqb*(zm'
SECRET_KEY = MY_SECRET_KEY
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# ПРЕДУПРЕЖДЕНИЕ БЕЗОПАСНОСТИ: не работайте в режиме DEBUG в production!
DEBUG = MY_DEBUG
ALLOWED_HOSTS = []
# Хосты на которых может работать приложение
ALLOWED_HOSTS = MY_ALLOWED_HOSTS
# Application definition
# Application definition (Определение приложений)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
@ -37,6 +53,8 @@ INSTALLED_APPS = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rosmorport_tsts.apps.RosmorportTstsConfig', # Приложение проекта
]
MIDDLEWARE = [
@ -54,7 +72,7 @@ ROOT_URLCONF = 'rosmorport_tsts.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'DIRS': [BASE_DIR / 'templates-django', ],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
@ -65,6 +83,24 @@ TEMPLATES = [
],
},
},
# Добавляем шаблонизатор Jinja2 (возможно его использование в будущем)
# {
# 'BACKEND': 'django.template.backends.jinja2.Jinja2',
# 'DIRS': [BASE_DIR / 'templates-jinja2', ],
# 'APP_DIRS': True,
# 'OPTIONS': {
# 'environment': 'roll_cms.my_jinja2_addon.environment',
# 'extensions': [
# 'roll_cms.my_jinja2_addon.DjangoNow',
# ],
# 'context_processors': [
# 'django.template.context_processors.debug',
# 'django.template.context_processors.request',
# 'django.contrib.auth.context_processors.auth',
# 'django.contrib.messages.context_processors.messages',
# ],
# },
# }
]
WSGI_APPLICATION = 'rosmorport_tsts.wsgi.application'
@ -81,43 +117,39 @@ DATABASES = {
}
# Password validation
# Password validation (Валидаторы паролей)
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', },
{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', },
{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', },
{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', },
]
# Internationalization
# https://docs.djangoproject.com/en/5.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
# Internationalization (Интернационализация)
# https://docs.djangoproject.com/en/4.2/topics/i18n/
LANGUAGE_CODE = 'ru-RU'
TIME_ZONE = 'Europe/Moscow'
USE_I18N = True
USE_TZ = True
FIRST_DAY_OF_WEEK = 1 # первый день недели: понедельник
SHORT_DATE_FORMAT = '%Y-%m-%d'
SHORT_DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.0/howto/static-files/
STATIC_URL = 'static/'
MEDIA_URL = 'media/'
MEDIA_ROOT = MY_MEDIA_ROOT
SITEMAP_ROOT = MY_SITEMAP_ROOT
STATICFILES_DIRS = [
MY_STATIC_ROOT
]
TOUCH_RELOAD = MY_TOUCH_RELOAD
# Default primary key field type
# Default primary key field type (Тип primary key в моделях)
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'