Start here. This is the direct spoken answer to practice first.
Overview
Both serializers define representations; ModelSerializer derives useful defaults from a Django model.
A Serializer declares fields and create or update behavior explicitly. A ModelSerializer is a shortcut that can derive fields, validators, and default create or update behavior from a Django model. I use ModelSerializer when the API representation closely follows a reviewed model boundary, and a plain Serializer when the contract combines sources, models an operation, or should remain independent from persistence.