· 4 years ago · Mar 03, 2021, 05:28 PM
1"""
2Django settings for foodgram project.
3
4Generated by 'django-admin startproject' using Django 3.1.1.
5
6For more information on this file, see
7https://docs.djangoproject.com/en/3.1/topics/settings/
8
9For the full list of settings and their values, see
10https://docs.djangoproject.com/en/3.1/ref/settings/
11"""
12import os
13from pathlib import Path
14
15# Build paths inside the project like this: BASE_DIR / 'subdir'.
16from django.urls import reverse_lazy
17
18BASE_DIR = Path(__file__).resolve().parent.parent
19
20
21# Quick-start development settings - unsuitable for production
22# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
23
24# SECURITY WARNING: keep the secret key used in production secret!
25SECRET_KEY = 's=1q2433hn3!5ovw_rv0q@ak6anbzhfkh!qc-lmhvth0l0^brl'
26
27# SECURITY WARNING: don't run with debug turned on in production!
28DEBUG = True
29#DEBUG = False
30
31ALLOWED_HOSTS = [
32 "localhost",
33 "127.0.0.1",
34]
35
36
37# Application definition
38
39INSTALLED_APPS = [
40 'django.contrib.flatpages',
41 'users',
42 'recipe',
43 'api_v1',
44 'django.contrib.admin',
45 'django.contrib.auth',
46 'django.contrib.contenttypes',
47 'django.contrib.sessions',
48 'django.contrib.messages',
49 'django.contrib.staticfiles',
50 'sorl.thumbnail',
51 'django.contrib.sites',
52 'widget_tweaks', # https://pypi.org/project/django-widget-tweaks/
53]
54
55MIDDLEWARE = [
56 'django.middleware.security.SecurityMiddleware',
57 # управление сессиями м/у запросами
58 'django.contrib.sessions.middleware.SessionMiddleware',
59 'django.middleware.common.CommonMiddleware',
60 'django.middleware.csrf.CsrfViewMiddleware',
61 # связывает пользователей, использующих сессии, запросами
62 'django.contrib.auth.middleware.AuthenticationMiddleware',
63 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
64 'django.contrib.messages.middleware.MessageMiddleware',
65 'django.middleware.clickjacking.XFrameOptionsMiddleware',
66]
67
68ROOT_URLCONF = 'foodgram.urls'
69
70TEMPLATES_DIR = os.path.join(BASE_DIR, 'templates')
71
72TEMPLATES = [
73 {
74 'BACKEND': 'django.template.backends.django.DjangoTemplates',
75 'DIRS': [TEMPLATES_DIR],
76 'APP_DIRS': True,
77 'OPTIONS': {
78 'context_processors': [
79 'django.template.context_processors.debug',
80 'django.template.context_processors.request',
81 'django.contrib.auth.context_processors.auth',
82 'django.contrib.messages.context_processors.messages',
83 'recipe.context_processors.counter',
84 ],
85 },
86 },
87]
88
89WSGI_APPLICATION = 'foodgram.wsgi.application'
90
91
92# Database
93# https://docs.djangoproject.com/en/3.1/ref/settings/#databases
94
95DATABASES = {
96 'default': {
97 # "ENGINE": os.environ.get("DB_ENGINE"),
98 # 'NAME': os.environ.get('DB_NAME'),
99 # 'USER': os.environ.get('POSTGRES_USER'),
100 # 'PASSWORD': os.environ.get('POSTGRES_PASSWORD'),
101 # 'HOST': os.environ.get('DB_HOST'),
102 # 'PORT': os.environ.get('DB_PORT'),
103 'ENGINE': 'django.db.backends.sqlite3',
104 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
105 }
106}
107
108
109# Password validation
110# https://docs.djangoproject.com/en/3.1/ref/settings/#auth-password-validators
111
112AUTH_PASSWORD_VALIDATORS = [
113 {
114 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
115 },
116 {
117 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
118 },
119 {
120 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
121 },
122 {
123 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
124 },
125]
126
127
128# Internationalization
129# https://docs.djangoproject.com/en/3.1/topics/i18n/
130
131LANGUAGE_CODE = 'en-us'
132
133TIME_ZONE = 'UTC'
134
135USE_I18N = True
136
137USE_L10N = True
138
139USE_TZ = True
140
141
142# Static files (CSS, JavaScript, Images)
143# https://docs.djangoproject.com/en/3.1/howto/static-files/
144
145STATIC_URL = '/static/'
146
147if DEBUG:
148 STATICFILES_DIRS = [
149 os.path.join(BASE_DIR, 'static')
150 ]
151else:
152 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
153
154
155
156MEDIA_URL = '/media/'
157
158MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
159
160
161LOGIN_URL = reverse_lazy('login')
162
163LOGIN_REDIRECT_URL = reverse_lazy('index')
164
165#LOGOUT_REDIRECT_URL = reverse_lazy('index') #Уберите комментарий с этой строки, если хотите перенаправлять п
166# ользователя на главную страницу после того, как он разлогинится
167
168# CACHES = {
169# 'default': {
170# 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
171# }
172# }
173
174#SITE_ID = os.environ.get('SITE_ID')
175SITE_ID = 1
176
177OBJECT_PER_PAGE = 6
178
179# подключаем движок filebased.EmailBackend (для сброса пароля)
180EMAIL_BACKEND = "django.core.mail.backends.filebased.EmailBackend"
181
182# указываем директорию, в которую будут складываться файлы писем
183EMAIL_FILE_PATH = os.path.join(BASE_DIR, "sent_emails")
184