Files
jumpserver/apps/assets/serializers/platform.py
2022-05-05 16:18:05 +08:00

47 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from rest_framework import serializers
from django.core.validators import RegexValidator
from django.utils.translation import gettext_lazy as _
from assets.models import Platform
from assets.serializers.asset import ProtocolsField
from assets.const import Protocol
from .mixin import CategoryDisplayMixin
__all__ = ['PlatformSerializer']
class PlatformSerializer(CategoryDisplayMixin, serializers.ModelSerializer):
meta = serializers.DictField(required=False, allow_null=True, label=_('Meta'))
protocols_default = ProtocolsField(label=_('Protocols'), required=False)
type_limits = serializers.ReadOnlyField(required=False, read_only=True)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# TODO 修复 drf SlugField RegexValidator bug之后记得删除
validators = self.fields['name'].validators
if isinstance(validators[-1], RegexValidator):
validators.pop()
# self.set_platform_meta()
class Meta:
model = Platform
fields_mini = ['id', 'name', 'internal']
fields_small = fields_mini + [
'meta', 'comment', 'charset',
'category', 'category_display',
'type', 'type_display',
'type_limits',
]
fields_fk = [
'domain_enabled', 'domain_default',
'protocols_enabled', 'protocols_default',
'admin_user_enabled', 'admin_user_default',
]
fields = fields_small + fields_fk
read_only_fields = [
'category_display', 'type_display',
]