Actually it's slightly different - you wouldn't be duplicating *any* code from model serializer, because that does two things:
1. Calls Model.objects.create(...)
2. Sets any many to many relations (which can only ever be populated once you have a saved instance)
In your case you don't want to do *either* of those, so you'd instead have...
def create(self, validated_data, commit=True):
return MyModel(**validated_data)
Note that as mentioned any many to many fields cannot ever be set until *after* you have a saved instance to associate them with, so if you have any of those you'd need to remove them, and handle them explicitly at the point you have saved the instance...
def create(self, validated_data, commit=True):
validated_data = validated_data.pop('some_m2m_relation')
return MyModel(**validated_data)
The above also gives you a bit of a clue as to why we *don't* expose `commit=False` as an option.