32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from rest_framework import serializers
|
|
from snippets.models import Snippet, LANG_CHOICES, STYLE_CHOICES
|
|
from django.contrib.auth.models import User
|
|
|
|
|
|
class SnippetSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Snippet
|
|
fields = ["id", "title", "code", "language", "line_numbers", "style"]
|
|
|
|
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
|
|
|
|
class UserSerializer(serializers.ModelSerializer):
|
|
snippets = serializers.PrimaryKeyRelatedField(many=True, queryset=Snippet.objects.all())
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ["id", "username", "snippets"]
|
|
|