✅ Решения заданий

⚡ Ответы (кратко)

Блок 1, В1: 1-B, 2-C, 3-A. В2: b) models.py

Блок 2, В1: 1-F, 2-E, 3-B, 4-C, 5-D, 6-A

Блок 2, В2: 1-B, 2-C, 3-A

Блок 2, В3: 1-D, 2-E, 3-B, 4-F, 5-C, 6-A

Блок 3, В1: 1-C, 2-A, 3-B, 4-D

Блок 3, В2: 1-A, 2-B, 3-D, 4-C

Блок 3, В3: 1-B, 2-A, 3-C, 4-D

Блок 1: Механизм миграций и Admin

Вопрос 1 — Команды manage.py

Ответ: 1-B, 2-C, 3-A

python manage.py makemigrationsB — Создание новых миграций
python manage.py migrateC — Применение новых миграций
python manage.py createsuperuserA — Создание пользователя со всеми правами

Объяснение:

  • makemigrations — сканирует models.py, сравнивает с предыдущими миграциями и создаёт файл миграции. Ещё не меняет БД.
  • migrateприменяет созданные файлы миграций к реальной базе данных. Именно эта команда меняет структуру таблиц.
  • createsuperuser — создаёт учётную запись с полным доступом к Admin-панели Django.

Вопрос 2 — Где определяются модели?

Ответ: b) В файле models.py

Объяснение: В Django принята чёткая структура приложения. Модели определяются в models.py приложения. urls.py — маршрутизация URL. views.py — обработчики запросов (логика представлений).

Блок 2: Поля в моделях Django

Вопрос 1 — Основные типы полей

Ответ: 1-F, 2-E, 3-B, 4-C, 5-D, 6-A

BooleanFieldF — хранение логических значений (True или False)
TextFieldE — хранение больших текстовых данных
DateFieldB — хранение дат без времени
IntegerFieldC — хранение целых чисел
FloatFieldD — хранение чисел с плавающей запятой
UUIDFieldA — хранение уникальных идентификаторов (UUID)

Вопрос 2 — Поля связей

Ответ: 1-B, 2-C, 3-A

ManyToManyFieldB — связь «многие ко многим»
OneToOneFieldC — связь «один к одному»
ForeignKeyA — связь «один ко многим»

Объяснение связей:

  • ForeignKey — «один ко многим»: один автор пишет много книг.
  • ManyToManyField — «многие ко многим»: одна статья имеет много тегов, один тег у многих статей.
  • OneToOneField — «один к одному»: один пользователь — один профиль.

Вопрос 3 — Прочие поля

Ответ: 1-D, 2-E, 3-B, 4-F, 5-C, 6-A

EmailFieldD — хранение адресов электронной почты
TimeFieldE — хранение времени без даты
SlugFieldB — хранение «слага» для URL
FileFieldF — хранение файлов
ImageFieldC — хранение изображений
DurationFieldA — хранение временных промежутков

Блок 3: Общие параметры полей

Вопрос 1 — Основные параметры

Ответ: 1-C, 2-A, 3-B, 4-D

max_lengthC — максимальная длина строки для CharField
nullA — поле может содержать NULL в базе данных
uniqueB — поле должно быть уникальным
blankD — поле может быть пустым в формах
Важно: null и blank — разные понятия. null=True — разрешает NULL в БД. blank=True — разрешает пустое значение в форме Django. Для строковых полей обычно используют blank=True (пустая строка ''), а не null=True.

Вопрос 2 — Параметры отображения

Ответ: 1-A, 2-B, 3-D, 4-C

defaultA — значение по умолчанию для поля
help_textB — вспомогательный текст в Admin и формах
db_indexD — создаёт индекс для поля в базе данных
verbose_nameC — читаемое имя поля для Admin

Вопрос 3 — Параметры валидации

Ответ: 1-B, 2-A, 3-C, 4-D

validatorsB — список валидаторов для проверки значений
primary_keyA — поле является первичным ключом
editableC — можно ли редактировать в Admin и формах
unique_for_dateD — уникальность для данного поля даты