forked from ietf-tools/datatracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserializers.py
More file actions
39 lines (27 loc) · 992 Bytes
/
serializers.py
File metadata and controls
39 lines (27 loc) · 992 Bytes
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
# Copyright The IETF Trust 2024, All Rights Reserved
"""DRF Serializers"""
from rest_framework import serializers
from ietf.ietfauth.validators import is_allowed_address
from .models import Email, Person
class EmailSerializer(serializers.ModelSerializer):
"""Email serializer for read/update"""
address = serializers.EmailField(read_only=True)
class Meta:
model = Email
fields = [
"person",
"address",
"primary",
"active",
"origin",
]
read_only_fields = ["person", "address", "origin"]
class NewEmailSerializer(serializers.Serializer):
"""Serialize a new email address request"""
address = serializers.EmailField(validators=[is_allowed_address])
class PersonSerializer(serializers.ModelSerializer):
"""Person serializer"""
emails = EmailSerializer(many=True, source="email_set")
class Meta:
model = Person
fields = ["id", "name", "emails"]