Given the following serializer and input data, what will serializer.is_valid() return?
from rest_framework import serializers from myapp.models import Product class ProductSerializer(serializers.ModelSerializer): class Meta: model = Product fields = ['id', 'name', 'price'] input_data = {'name': 'Book', 'price': -10} serializer = ProductSerializer(data=input_data) valid = serializer.is_valid()
Think about how ModelSerializer uses model field validators automatically.
ModelSerializer uses the model's field validators, so negative price (assuming model has positive constraint) causes is_valid() to return False.
Choose the correct ModelSerializer code that makes the created_at field read-only.
from rest_framework import serializers from myapp.models import Event
Check how to specify read-only fields in Meta class.
The read_only_fields attribute inside Meta is the standard way to mark model fields as read-only in ModelSerializer.
Consider this serializer and model. Why does calling serializer.is_valid(raise_exception=True) raise a ValidationError?
class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ['username', 'email', 'password'] serializer = UserSerializer(data={'username': 'alice', 'email': 'a@example.com'}) serializer.is_valid(raise_exception=True) serializer.save()
Check which fields are required and if they are provided.
The serializer expects all fields listed in fields. Missing 'password' causes ValidationError on is_valid().
Given this serializer and input, what will serializer.validated_data contain after is_valid()?
class ArticleSerializer(serializers.ModelSerializer): class Meta: model = Article fields = ['title', 'content', 'author'] input_data = {'title': 'Hello', 'content': 'World', 'author': 5} serializer = ArticleSerializer(data=input_data) serializer.is_valid() result = serializer.validated_data
Recall the default serializer field used for model ForeignKey fields in ModelSerializer.
ModelSerializer uses PrimaryKeyRelatedField by default for foreign key relations, so validated_data contains the primary key value (5), not a model instance.
Choose the correct statement about how ModelSerializer handles nested writable relationships.
Think about how nested data is saved in DRF.
Writable nested serializers require custom create() and update() methods to save nested data properly.