forked from django-json-api/django-rest-framework-json-api
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserializers.py
69 lines (49 loc) · 1.79 KB
/
serializers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from rest_framework_json_api import serializers
from tests.models import (
BasicModel,
ForeignKeySource,
ForeignKeyTarget,
ManyToManySource,
ManyToManyTarget,
NestedRelatedSource,
)
class BasicModelSerializer(serializers.ModelSerializer):
class Meta:
fields = ("text",)
model = BasicModel
class ForeignKeyTargetSerializer(serializers.ModelSerializer):
class Meta:
fields = ("name",)
model = ForeignKeyTarget
class ForeignKeySourceSerializer(serializers.ModelSerializer):
included_serializers = {"target": ForeignKeyTargetSerializer}
class Meta:
model = ForeignKeySource
fields = ("target",)
class ManyToManyTargetSerializer(serializers.ModelSerializer):
class Meta:
fields = ("name",)
model = ManyToManyTarget
class ManyToManySourceSerializer(serializers.ModelSerializer):
included_serializers = {"targets": "tests.serializers.ManyToManyTargetSerializer"}
class Meta:
model = ManyToManySource
fields = ("targets",)
class ManyToManySourceReadOnlySerializer(serializers.ModelSerializer):
class Meta:
model = ManyToManySource
fields = ("targets",)
class NestedRelatedSourceSerializer(serializers.ModelSerializer):
included_serializers = {
"m2m_sources": ManyToManySourceSerializer,
"fk_source": ForeignKeySourceSerializer,
"m2m_targets": ManyToManyTargetSerializer,
"fk_target": ForeignKeyTargetSerializer,
}
class Meta:
model = NestedRelatedSource
fields = ("m2m_sources", "fk_source", "m2m_targets", "fk_target")
class CallableDefaultSerializer(serializers.Serializer):
field = serializers.CharField(default=serializers.CreateOnlyDefault("default"))
class Meta:
fields = ("field",)