Блок 1: Механизм миграций и Admin
Вопрос 1 — Команды manage.py
Ответ: 1-B, 2-C, 3-A
python manage.py makemigrations | B — Создание новых миграций |
python manage.py migrate | C — Применение новых миграций |
python manage.py createsuperuser | A — Создание пользователя со всеми правами |
Объяснение:
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
BooleanField | F — хранение логических значений (True или False) |
TextField | E — хранение больших текстовых данных |
DateField | B — хранение дат без времени |
IntegerField | C — хранение целых чисел |
FloatField | D — хранение чисел с плавающей запятой |
UUIDField | A — хранение уникальных идентификаторов (UUID) |
Вопрос 2 — Поля связей
Ответ: 1-B, 2-C, 3-A
ManyToManyField | B — связь «многие ко многим» |
OneToOneField | C — связь «один к одному» |
ForeignKey | A — связь «один ко многим» |
Объяснение связей:
- ForeignKey — «один ко многим»: один автор пишет много книг.
- ManyToManyField — «многие ко многим»: одна статья имеет много тегов, один тег у многих статей.
- OneToOneField — «один к одному»: один пользователь — один профиль.
Вопрос 3 — Прочие поля
Ответ: 1-D, 2-E, 3-B, 4-F, 5-C, 6-A
EmailField | D — хранение адресов электронной почты |
TimeField | E — хранение времени без даты |
SlugField | B — хранение «слага» для URL |
FileField | F — хранение файлов |
ImageField | C — хранение изображений |
DurationField | A — хранение временных промежутков |
Блок 3: Общие параметры полей
Вопрос 1 — Основные параметры
Ответ: 1-C, 2-A, 3-B, 4-D
max_length | C — максимальная длина строки для CharField |
null | A — поле может содержать NULL в базе данных |
unique | B — поле должно быть уникальным |
blank | D — поле может быть пустым в формах |
Важно:
null и blank — разные понятия. null=True — разрешает NULL в БД. blank=True — разрешает пустое значение в форме Django. Для строковых полей обычно используют blank=True (пустая строка ''), а не null=True.
Вопрос 2 — Параметры отображения
Ответ: 1-A, 2-B, 3-D, 4-C
default | A — значение по умолчанию для поля |
help_text | B — вспомогательный текст в Admin и формах |
db_index | D — создаёт индекс для поля в базе данных |
verbose_name | C — читаемое имя поля для Admin |
Вопрос 3 — Параметры валидации
Ответ: 1-B, 2-A, 3-C, 4-D
validators | B — список валидаторов для проверки значений |
primary_key | A — поле является первичным ключом |
editable | C — можно ли редактировать в Admin и формах |
unique_for_date | D — уникальность для данного поля даты |