📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Django Framework DRF Serializers Deep Dive

DRF Serializers Deep Dive

6 min read
DRF serializers: SerializerMethodField, SlugRelatedField, validate_field, and create().

DRF Serializers

class PostSerializer(serializers.ModelSerializer):
    author_name   = serializers.SerializerMethodField()
    comment_count = serializers.IntegerField(source="comments.count", read_only=True)
    tags = serializers.SlugRelatedField(many=True, slug_field="name", queryset=Tag.objects.all())

    class Meta:
        model  = Post
        fields = ["id","title","body","author_name","comment_count","tags"]

    def get_author_name(self, obj): return obj.author.get_full_name()
    def validate_title(self, v):
        if len(v) < 5: raise serializers.ValidationError("Too short")
        return v