Sobes.tech
Junior — Senior
49

Добавление книги с набором обложек (вариант 3)

Условие задачи

Функция create_book отвечает за создание записи модели Book и связанных с ней записей модели BookCover. Список обложек передаётся в словаре validate_data под ключом covers. Необходимо провести ревью кода: убедиться, что логика реализована корректно, нет ли потенциальных проблем с производительностью или атомарностью операций. Проверить, правильно ли формируются объекты обложек, имеет ли смысл использовать переменную objs, стоит ли заменить отдельные вызовы create на bulk_create, а также нужны ли дополнительные проверки или обёртка в транзакцию.

def create_book(validate_data: dict):
    covers: list[dict] = validate_data.pop('covers')
    book = Book.objects.create(**validate_data)
    objs = []
    for cover in covers:
        BookCover.objects.create(**cover, book=book)