Using model serializers to eliminate duplicate code
The GameSerializer
class we coded in Chapter 5, Developing RESTful APIs with Django 2.1, declares many attributes with the same names that we used in the Game
model and repeats information such as the field types and the max_length
values. The GameSerializer
class is a subclass of the rest_framework.serializers.Serializer
superclass and it declares attributes that we manually mapped to the appropriate types, and overrides the create
and update
methods.
Now we will create a new version of the GameSerializer
class that will inherit from the rest_framework.serializers.ModelSerializer
superclass. The ModelSerializer
class automatically populates both a set of default fields and a set of default validators. In addition, the class provides default implementations for the create
and update
methods. Hence, this new version of the GameSerializer
class will have less code than the previous version and will be easier to maintain.
Note
If you have any...