Challenge - 5 Problems
Custom Serializer Fields Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate2:00remaining
What is the output of this custom serializer field?
Consider this Django REST Framework serializer field that converts a string to uppercase during serialization.
What will be the serialized output for the input {'name': 'alice'}?
What will be the serialized output for the input {'name': 'alice'}?
Django
from rest_framework import serializers class UpperCaseField(serializers.Field): def to_representation(self, value): return value.upper() class UserSerializer(serializers.Serializer): name = UpperCaseField() serializer = UserSerializer({'name': 'alice'}) print(serializer.data)
Attempts:
2 left
💡 Hint
Look at what the to_representation method does to the input value.
✗ Incorrect
The custom field overrides to_representation to convert the string to uppercase. So the output will have 'ALICE' as the name.
📝 Syntax
intermediate2:00remaining
Identify the syntax error in this custom serializer field
Which option correctly fixes the syntax error in this custom serializer field code?
Django
from rest_framework import serializers class CustomField(serializers.Field): def to_representation(self, value) return str(value) + '!'
Attempts:
2 left
💡 Hint
Python method definitions require a colon at the end.
✗ Incorrect
The method definition is missing a colon at the end, which causes a SyntaxError.
❓ state_output
advanced2:00remaining
What is the value of 'data' after serialization?
Given this serializer with a custom field that reverses strings during serialization, what is the value of serializer.data?
Django
from rest_framework import serializers class ReverseField(serializers.Field): def to_representation(self, value): return value[::-1] class MessageSerializer(serializers.Serializer): message = ReverseField() serializer = MessageSerializer({'message': 'hello'}) data = serializer.data
Attempts:
2 left
💡 Hint
The to_representation method reverses the string.
✗ Incorrect
The custom field reverses the string 'hello' to 'olleh' during serialization.
🔧 Debug
advanced2:00remaining
Which option causes a runtime error when using this custom serializer field?
This custom field expects an integer but receives a string. Which option will cause a runtime error when serializing?
Django
from rest_framework import serializers class DoubleIntegerField(serializers.Field): def to_representation(self, value): return value * 2 class NumberSerializer(serializers.Serializer): number = DoubleIntegerField() serializer = NumberSerializer({'number': input_value}) output = serializer.data
Attempts:
2 left
💡 Hint
Consider what happens when None is multiplied by 2.
✗ Incorrect
Multiplying None by 2 raises a TypeError because NoneType cannot be multiplied.
🧠 Conceptual
expert3:00remaining
Which option correctly implements a custom serializer field that validates input as a positive integer?
You want to create a custom serializer field that only accepts positive integers during input validation. Which option correctly implements the to_internal_value method to enforce this?
Attempts:
2 left
💡 Hint
Remember to convert input to int and check for positive values including zero.
✗ Incorrect
Option C converts input to int, checks if value is less than or equal to zero, and raises error if so. This correctly enforces positive integers (greater than zero).