Member-only story
Writing My Own Django Serializer for camelCase — Until I Found the One-Line Fix
Not a paid member? Read here for FREE!
When you’re building a Django REST API and the frontend is speaking fluent camelCase while Django insists on snake_case… you end up playing translator.
And it’s annoying. Every request is a mess of renamed fields, unnecessary mappings, and serializers that look like a jungle of overridden variables.
Let’s be real — this isn’t where you want to spend your energy.
Take a basic Django REST Framework (DRF) model, for example:
class User(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
When serialized, this becomes:
{
"first_name": "John",
"last_name": "Doe"
}
That’s fine for Django. But your frontend dev? They’re expecting:
{
"firstName": "John",
"lastName": "Doe"
}
Sure, you can manually map every field:
class UserSerializer(serializers.ModelSerializer):
fullName = serializers.CharField(source='full_name')
createdAt = serializers.DateTimeField(source='created_at')