creates serializer for snippets

This commit is contained in:
ergz 2022-07-24 11:26:01 -07:00
parent 18b241ed3b
commit 17d2201e91
1 changed files with 25 additions and 0 deletions

25
snippets/serializers.py Normal file
View File

@ -0,0 +1,25 @@
from rest_framework import serializers
from snippets.models import Snippet, LANG_CHOICES, STYLE_CHOICES
class SnippetSerializer(serializers.Serializer):
id = serializers.IntegerField(read_only=True)
title = serializers.CharField(required=False, allow_blank=True, max_length=100)
code = serializers.CharField(style={"base_template", "textarea.html"})
line_numbers = serializers.BooleanField()
language = serializers.ChoiceField(choices=LANG_CHOICES, default="python")
style = serializers.ChoiceField(choices=STYLE_CHOICES, default="friendly")
def create(self, validated_data):
return Snippet.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.title = validated_data.get("title", instance.title)
instance.code = validated_data.get("code", instance.code)
instance.line_numbers = validated_data.get("line_numbers", instance.line_numbers)
instance.language = validated_data.get("language", instance.language)
instance.style = validated_data.get("style", instance.style)
instance.save()
return instance