Files
ProdMan/core/settings.py
ackFromRedmi 56dd6644e2
All checks were successful
Auto-Deploy-prodman / deploy (push) Successful in 6s
Добавил приложение склад и модели заготовок
2026-02-16 08:00:16 +03:00

174 lines
5.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Django settings for core project.
Generated by 'django-admin startproject' using Django 6.0.2.
For more information on this file, see
https://docs.djangoproject.com/en/6.0/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/6.0/ref/settings/
"""
from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-5(p6^by%ax10=(ev#ltdb8#f4@mq4&9gqnjvr9dboc=7t_&sbf'
# читаем переменную окружения
ENV_TYPE = os.getenv('ENV_TYPE', 'local')
# Настройки безопасности
# DEBUG будет True везде, кроме сервера
DEBUG = ENV_TYPE != 'server'
if not DEBUG:
# На сервере список хостов должен быть ограничен
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', 'localhost').split(',')
else:
# Для разработки разрешаем всё
ALLOWED_HOSTS = ['*']
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'polymorphic', # added app Polymorphic
'mptt', # added app MPTT
'bom_manager', # added app Bom Manager
'stock', # added app Stock
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'core.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'core.wsgi.application'
print(f"DEBUG: Current ENV_TYPE is {ENV_TYPE}")
# Database
# https://docs.djangoproject.com/en/6.0/ref/settings/#databases
if ENV_TYPE == 'server':
# Для Docker на удаленном сервере (максимальная защита через .env)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('DB_NAME'),
'USER': os.getenv('DB_USER'),
'PASSWORD': os.getenv('DB_PASS'),
'HOST': os.getenv('DB_HOST', 'db'),
'PORT': '5432',
}
}
elif ENV_TYPE == 'dev':
# Настройки для локальной разработки с внешней БД
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'prodman_dev_db',
'USER': 'dev_user',
'PASSWORD': 'dev_password',
'HOST': '192.168.1.90', # локальный сервер БД
'PORT': '5432',
}
}
else:
# Режим "на коленке"
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/6.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',
},
]
# Internationalization
# https://docs.djangoproject.com/en/6.0/topics/i18n/
LANGUAGE_CODE = 'ru-ru'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/6.0/howto/static-files/
# --- Статика и Медиа ---
STATIC_URL = 'static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'
MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / 'media'
# Доверяем прокси-серверу передавать заголовки
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# Список доверенных источников для CSRF (укажи свой IP и порт)
CSRF_TRUSTED_ORIGINS = [
"http://192.168.1.57:8085",
"https://prodman.tertelius.space", # Если будет SSL/HTTPS
"http://prodman.tertelius.space", # Если пока без SSL
]