feat: Add field Meta.sub_model_type to sub-models

ref: #732 #564
This commit is contained in:
2025-04-26 06:00:34 +09:30
parent dbc849d3f1
commit b6146b7d14
19 changed files with 83 additions and 13 deletions

View File

@ -0,0 +1,75 @@
from drf_spectacular.utils import extend_schema_serializer
from access.models.contact import Contact
from access.serializers.entity_person import (
BaseSerializer as BaseBaseSerializer,
ModelSerializer as BaseModelSerializer,
)
from access.serializers.organization import OrganizationBaseSerializer
class BaseSerializer(
BaseBaseSerializer,
):
pass
@extend_schema_serializer(component_name = 'ContactEntityModelSerializer')
class ModelSerializer(
BaseSerializer,
BaseModelSerializer,
):
"""Contact Model
This model first inherits from Person then inherits from the Entity Base model.
"""
class Meta:
model = Contact
fields = [
'id',
'person_ptr_id',
'organization',
'entity_type',
'display_name',
'f_name',
'm_name',
'l_name',
'dob',
'email',
'directory',
'model_notes',
'is_global',
'created',
'modified',
'_urls',
]
read_only_fields = [
'id',
'display_name',
'entity_type',
'created',
'modified',
'_urls',
]
@extend_schema_serializer(component_name = 'ContactEntityViewSerializer')
class ViewSerializer(
ModelSerializer,
):
"""Contact View Model
This model inherits from the Person model.
"""
organization = OrganizationBaseSerializer(many=False, read_only=True)