Sobes.tech
Junior — Senior

Creating a book and its covers

livecode

Task condition

The create_book function is responsible for creating a Book model record and associated BookCover model records. The list of covers is passed as an array of dictionaries, nested within the validate_data parameter.

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

Inside the function, cover data is first extracted, then a book object is created, and for each cover, a separate record is formed, linked to the newly created book.