@@ -0,0 +1,28 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from .models import FormulaDocument, FormulaRevision
|
||||
|
||||
|
||||
class FormulaDocumentSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = FormulaDocument
|
||||
fields = ("id", "title", "source", "created_at", "updated_at")
|
||||
read_only_fields = ("id", "created_at", "updated_at")
|
||||
|
||||
def validate_source(self, value):
|
||||
if len(value) > 50_000:
|
||||
raise serializers.ValidationError("公式源码不能超过 50000 个字符")
|
||||
return value
|
||||
|
||||
def create(self, validated_data):
|
||||
document = FormulaDocument.objects.create(
|
||||
user=self.context["request"].user,
|
||||
**validated_data,
|
||||
)
|
||||
FormulaRevision.objects.create(document=document, source=document.source)
|
||||
return document
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
instance = super().update(instance, validated_data)
|
||||
FormulaRevision.objects.create(document=instance, source=instance.source)
|
||||
return instance
|
||||
Reference in New Issue
Block a user