diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/WEB 1.2 \320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\233\320\260\320\261\320\276\321\200\320\260\321\202\320\276\321\200\320\275\320\260\321\217 \321\200\320\260\320\261\320\276\321\202\320\260 \342\204\2268.pdf" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/WEB 1.2 \320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\233\320\260\320\261\320\276\321\200\320\260\321\202\320\276\321\200\320\275\320\260\321\217 \321\200\320\260\320\261\320\276\321\202\320\260 \342\204\2268.pdf" new file mode 100644 index 000000000..c946a54a4 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/WEB 1.2 \320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\233\320\260\320\261\320\276\321\200\320\260\321\202\320\276\321\200\320\275\320\260\321\217 \321\200\320\260\320\261\320\276\321\202\320\260 \342\204\2268.pdf" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/db.sqlite3" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/db.sqlite3" new file mode 100644 index 000000000..067197aa2 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/db.sqlite3" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__init__.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__init__.py" new file mode 100644 index 000000000..e69de29bb diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/__init__.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/__init__.cpython-313.pyc" new file mode 100644 index 000000000..a86e69b14 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/__init__.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/settings.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/settings.cpython-313.pyc" new file mode 100644 index 000000000..4d35b733b Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/settings.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/urls.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/urls.cpython-313.pyc" new file mode 100644 index 000000000..5256d5d49 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/urls.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/wsgi.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/wsgi.cpython-313.pyc" new file mode 100644 index 000000000..74b5a3bf8 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/__pycache__/wsgi.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/asgi.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/asgi.py" new file mode 100644 index 000000000..6850769f3 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/asgi.py" @@ -0,0 +1,16 @@ +""" +ASGI config for lab_8 project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lab_8.settings') + +application = get_asgi_application() diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/settings.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/settings.py" new file mode 100644 index 000000000..cf4ccd31e --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/settings.py" @@ -0,0 +1,125 @@ +""" +Django settings for lab_8 project. + +Generated by 'django-admin startproject' using Django 5.2.1. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/5.2/ref/settings/ +""" + +from pathlib import Path + +# 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/5.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = 'django-insecure-#vb%o1=-i4-eu_vboyan2%u1-4x@d8sldfmw^)emupss7vb9s=' + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True + +ALLOWED_HOSTS = [] + + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'main' +] + +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 = 'lab_8.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [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 = 'lab_8.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/5.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + + +# Password validation +# https://docs.djangoproject.com/en/5.2/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/5.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'UTC' + +USE_I18N = True + +USE_TZ = True + + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/5.2/howto/static-files/ + +STATIC_URL = '/static/' +STATICFILES_DIRS = [BASE_DIR / "static"] # Для разработки + +# Default primary key field type +# https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/urls.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/urls.py" new file mode 100644 index 000000000..74b8ee3a1 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/urls.py" @@ -0,0 +1,28 @@ +""" +URL configuration for lab_8 project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/5.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path + +from main import views + +urlpatterns = [ + path('admin/', admin.site.urls), + path('', views.home, name='home'), + path('about/', views.about, name='about'), + path('feedback/', views.feedback, name='feedback'), + path('thank_you/', views.thank_you, name='thank_you'), +] diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/wsgi.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/wsgi.py" new file mode 100644 index 000000000..11a3ceaa8 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/lab_8/wsgi.py" @@ -0,0 +1,16 @@ +""" +WSGI config for lab_8 project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/5.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lab_8.settings') + +application = get_wsgi_application() diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__init__.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__init__.py" new file mode 100644 index 000000000..e69de29bb diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/__init__.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/__init__.cpython-313.pyc" new file mode 100644 index 000000000..62503a7bf Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/__init__.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/admin.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/admin.cpython-313.pyc" new file mode 100644 index 000000000..af2b12995 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/admin.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/apps.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/apps.cpython-313.pyc" new file mode 100644 index 000000000..5d0807aa3 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/apps.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/forms.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/forms.cpython-313.pyc" new file mode 100644 index 000000000..f31070e8a Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/forms.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/models.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/models.cpython-313.pyc" new file mode 100644 index 000000000..dfdd94d92 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/models.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/views.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/views.cpython-313.pyc" new file mode 100644 index 000000000..f951128f0 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/__pycache__/views.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/admin.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/admin.py" new file mode 100644 index 000000000..7a9328453 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/admin.py" @@ -0,0 +1,6 @@ +from django.contrib import admin +from .models import Feedback + +@admin.register(Feedback) +class FeedbackAdmin(admin.ModelAdmin): + list_display = ('name', 'email', 'message', 'created_at') diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/apps.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/apps.py" new file mode 100644 index 000000000..167f04426 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/apps.py" @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class MainConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'main' diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/forms.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/forms.py" new file mode 100644 index 000000000..722023aff --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/forms.py" @@ -0,0 +1,17 @@ +from django import forms +from .models import Feedback + +class FeedbackForm(forms.ModelForm): + class Meta: + model = Feedback + fields = ['name', 'email', 'message'] + widgets = { + 'name': forms.TextInput(attrs={'class': 'form-control'}), + 'email': forms.EmailInput(attrs={'class': 'form-control'}), + 'message': forms.Textarea(attrs={'class': 'form-control', 'rows': 5}), + } + labels = { + 'name': 'Имя', + 'email': 'Почта', + 'message': 'Сообщение' + } diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/0001_initial.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/0001_initial.py" new file mode 100644 index 000000000..f9e492fed --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/0001_initial.py" @@ -0,0 +1,24 @@ +# Generated by Django 5.2.1 on 2025-05-10 19:47 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Feedback', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=100, verbose_name='Имя')), + ('email', models.EmailField(max_length=254, verbose_name='Почта')), + ('message', models.TextField(verbose_name='Сообщение')), + ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Дата отправки')), + ], + ), + ] diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/__init__.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/__init__.py" new file mode 100644 index 000000000..e69de29bb diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/__pycache__/0001_initial.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/__pycache__/0001_initial.cpython-313.pyc" new file mode 100644 index 000000000..f11c173f8 Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/__pycache__/0001_initial.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/__pycache__/__init__.cpython-313.pyc" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/__pycache__/__init__.cpython-313.pyc" new file mode 100644 index 000000000..38d6e396e Binary files /dev/null and "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/migrations/__pycache__/__init__.cpython-313.pyc" differ diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/models.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/models.py" new file mode 100644 index 000000000..9a1e77aa0 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/models.py" @@ -0,0 +1,7 @@ +from django.db import models + +class Feedback(models.Model): + name = models.CharField(max_length=100, verbose_name='Имя') + email = models.EmailField(verbose_name='Почта') + message = models.TextField(verbose_name='Сообщение') + created_at = models.DateTimeField(auto_now_add=True, verbose_name='Дата отправки') diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/tests.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/tests.py" new file mode 100644 index 000000000..7ce503c2d --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/tests.py" @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/views.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/views.py" new file mode 100644 index 000000000..80449e596 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/main/views.py" @@ -0,0 +1,23 @@ +from django.shortcuts import render, redirect + +from main.forms import FeedbackForm + + +def home(request): + return render(request, 'main/home.html') + +def about(request): + return render(request, 'main/about.html') +def feedback(request): + if request.method == 'POST': + form = FeedbackForm(request.POST) + if form.is_valid(): + form.save() + return redirect('thank_you') + else: + form = FeedbackForm() + + return render(request, 'main/feedback.html', {'form': form}) + +def thank_you(request): + return render(request, 'main/thank_you.html') \ No newline at end of file diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/manage.py" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/manage.py" new file mode 100644 index 000000000..b07c9f13e --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/manage.py" @@ -0,0 +1,22 @@ +#!/usr/bin/env python +"""Django's command-line utility for administrative tasks.""" +import os +import sys + + +def main(): + """Run administrative tasks.""" + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lab_8.settings') + try: + from django.core.management import execute_from_command_line + except ImportError as exc: + raise ImportError( + "Couldn't import Django. Are you sure it's installed and " + "available on your PYTHONPATH environment variable? Did you " + "forget to activate a virtual environment?" + ) from exc + execute_from_command_line(sys.argv) + + +if __name__ == '__main__': + main() diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/static/css/main.css" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/static/css/main.css" new file mode 100644 index 000000000..a9fe0a135 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/static/css/main.css" @@ -0,0 +1,133 @@ +body { + font-family: Arial, sans-serif; + font-size: 18px; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + min-height: 100vh; +} + +header { + background: #2c3e50; + color: white; + padding: 1rem; + text-align: center; + display: flex; + flex-direction: row; + justify-content: space-between; +} + +header h1 { + margin: 0; +} + +nav { + align-content: center; +} + +nav a { + display: inline-block; + background: coral; + color: white; + text-decoration: none; + padding: 1rem; + border-radius: 2px; + min-width: 100px; +} + +nav a:hover { + text-decoration: underline; +} + +main { + flex: 1; + padding: 1rem 0 0 0; +} + +footer { + background: #2c3e50; + color: white; + text-align: center; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + padding: 1rem 0; +} + +.home-content { + margin: 0 auto; +} + +.home-content h2 { + color: #2c3e50; +} + +.gallery { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(500px, 1fr)); + gap: 20px; +} + +.card { + position: relative; + overflow: hidden; + border-radius: 8px; +} + +.card img { + width: 100%; + height: 200px; + display: block; + object-fit: cover; + filter: brightness(60%); /* затемнение */ + transition: filter 0.3s ease; +} + +.card:hover img { + filter: brightness(80%); +} + +.card-text { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: #fff; + font-size: 1.2rem; + text-align: center; + padding: 0 10px; + pointer-events: none; +} + +.feedback-form { + max-width: 600px; + margin: 2rem auto; + padding: 2rem; + background: #f9f9f9; +} + +.form-control { + width: 100%; + padding: 0.5rem; + margin-bottom: 1rem; + border: 1px solid #ddd; +} + +.submit-btn { + background: #2c3e50; + color: white; + border: none; + padding: 1rem; + cursor: pointer; + font-size: 1rem; +} + +.submit-btn:hover { + background: #34495e; +} + +.center { + text-align: center; +} \ No newline at end of file diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/about.html" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/about.html" new file mode 100644 index 000000000..0e9181229 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/about.html" @@ -0,0 +1,20 @@ +{% extends 'main/base.html' %} + +{% block title %}О разработке{% endblock %} + +{% block content %} +
+

Кто мы?

+

Мы — команда профессионалов с многолетним опытом в сфере автосервиса. Наша миссия — обеспечить каждому клиенту качественное, честное и быстрое обслуживание. +Мы знаем, как важна надёжность автомобиля, поэтому подходим к каждому ремонту с максимальной ответственностью.

+

+ Наш автосервис оборудован современным диагностическим и ремонтным оборудованием, а мастера регулярно проходят обучение и сертификацию. +

+

+ Мы работаем с автомобилями всех марок и моделей, гарантируя прозрачность и безопасность на каждом этапе. +

+

+ Вы можете быть уверены: ваш автомобиль в надёжных руках. +

+
+{% endblock %} \ No newline at end of file diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/base.html" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/base.html" new file mode 100644 index 000000000..88afbf521 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/base.html" @@ -0,0 +1,32 @@ +{% load static %} + + + + + + {% block title %}Мой сайт{% endblock %} + + + + +
+

Автосервис

+ +
+ +
+ {% block content %} + {% endblock %} +
+ + + + + + diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/feedback.html" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/feedback.html" new file mode 100644 index 000000000..f0a6bf326 --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/feedback.html" @@ -0,0 +1,16 @@ +{% extends 'main/base.html' %} + +{% block title %}Обратная связь{% endblock %} + +{% block content %} +
+

Форма обратной связи

+
+
+ {% csrf_token %} + {{ form.as_p }} + +
+
+
+{% endblock %} diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/home.html" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/home.html" new file mode 100644 index 000000000..e28f4dc9a --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/home.html" @@ -0,0 +1,38 @@ +{% extends 'main/base.html' %} + +{% block title %}Главная страница{% endblock %} + +{% block content %} +
+

Профессиональный автосервис — быстро, качественно, с гарантией

+

Ищете, кому доверить ремонт или обслуживание машины? Мы предлагаем комплексный автосервис: от замены масла до + сложного ремонта двигателя. Современное оборудование, опытные мастера и честный подход — всё, + что нужно для вашей уверенности на дороге.

+
+ +{% endblock %} diff --git "a/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/thank_you.html" "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/thank_you.html" new file mode 100644 index 000000000..49f8b5b9a --- /dev/null +++ "b/work/K3323/\320\222\320\273\320\260\320\267\320\275\320\265\320\262 \320\224\320\260\320\275\320\270\320\273\320\260 \320\222\320\273\320\260\320\264\320\270\320\274\320\270\321\200\320\276\320\262\320\270\321\207/lab_8/project/templates/main/thank_you.html" @@ -0,0 +1,10 @@ +{% extends 'main/base.html' %} + +{% block title %}О разработке{% endblock %} + +{% block content %} +
+

Спасибо за ваше сообщение!

+

Мы свяжемся с вами в ближайшее время.

+
+{% endblock %} \ No newline at end of file