From 17d2201e91298bb8112455baab4b14c715e79af4 Mon Sep 17 00:00:00 2001 From: ergz Date: Sun, 24 Jul 2022 11:26:01 -0700 Subject: [PATCH] creates serializer for snippets --- snippets/serializers.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 snippets/serializers.py diff --git a/snippets/serializers.py b/snippets/serializers.py new file mode 100644 index 0000000..7f0e01a --- /dev/null +++ b/snippets/serializers.py @@ -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 + +