Ошибка 1: Приложение не в INSTALLED_APPS
Симптом: шаблоны не находятся, модели не мигрируются, сигналы не работают.
# Неправильно — 'myapp' не добавлено
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# myapp отсутствует!
]
# Правильно
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # добавлено
]
Ошибка 2: Не подключен urls.py приложения
Симптом: все URL приложения возвращают 404, даже если view написано корректно.
# Неправильно — include() не вызван
# config/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
# маршруты myapp не подключены
]
# Правильно
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')), # подключено
]
Ошибка 3: manage.py запущен не из нужной директории
Симптом: ошибка python: can't open file '...\manage.py': No such file or directory.
# Неправильно — вы находитесь не там
C:\Users\user> python manage.py runserver
# Правильно — перейти в папку с manage.py
C:\Users\user> cd myproject
C:\Users\user\myproject> python manage.py runserver
Ошибка 4: Не создан файл myapp/urls.py
Симптом: ModuleNotFoundError: No module named 'myapp.urls'
Django создаёт приложение с набором файлов, но urls.py не входит в стандартный набор. Его нужно создать вручную:
# myapp/urls.py — создать вручную
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
Ошибка 5: Неправильный путь к шаблону
Симптом: TemplateDoesNotExist: myapp/index.html
# Неправильная структура папок
myapp/templates/index.html ← без папки myapp внутри
# Правильная структура
myapp/templates/myapp/index.html ← с папкой myapp внутри
В view использовать путь с префиксом:
# Неправильно
return render(request, 'index.html', context)
# Правильно
return render(request, 'myapp/index.html', context)
Ошибка 6: Не выполнены миграции
Симптом: предупреждение при запуске сервера «You have X unapplied migration(s)». Adminка может не работать.
# Применить начальные миграции
python manage.py migrate
Это нужно сделать сразу после создания проекта, даже если собственных моделей ещё нет — Django сам создаёт таблицы для встроенных приложений (auth, sessions, admin).
Ошибка 7: Забыта точка в startproject
Симптом: появляется лишняя директория config/config/ внутри проекта.
# Неправильно — создаётся лишняя вложенность
django-admin startproject config
# Структура (нежелательная):
config/
└── config/
├── settings.py
└── ...
# Правильно — точка означает "в текущей папке"
django-admin startproject config .
# Структура (правильная):
config/
├── settings.py
└── ...
manage.py
Ошибка 8: Отладочная информация в production
Симптом: подробные ошибки Django видны пользователям на боевом сервере.
# settings.py — для разработки (по умолчанию)
DEBUG = True
ALLOWED_HOSTS = []
# settings.py — для production (ОБЯЗАТЕЛЬНО изменить)
DEBUG = False
ALLOWED_HOSTS = ['yourdomain.com', 'www.yourdomain.com']