/
vshmidt
/
label-studio
Обзор
Документация
Войти
/
vshmidt
/
label-studio
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
label_studio/webhooks/serializers.py
58 строк
2 KB
Sergey Zhuk
ci: PLT-1040: decommission blue (#9539)
06 мар 2026, 21:50
Не верифицирован
06 мар 2026, 21:50
bbf1667
Код
Авторство
О чём код?
from rest_framework import serializers from .models import Webhook, WebhookAction class WebhookSerializer(serializers.ModelSerializer): actions = serializers.ListField( child=serializers.ChoiceField(choices=WebhookAction.ACTIONS), default=[], source='_actions' ) class Meta: model = Webhook fields = ( 'id', 'organization', 'project', 'url', 'send_payload', 'send_for_all_actions', 'headers', 'is_active', 'actions', 'created_at', 'updated_at', ) read_only_fields = ('id', 'organization', 'created_at', 'updated_at') def validate(self, attrs): actions = attrs.pop('_actions', []) instance = Webhook(**attrs) instance.validate_actions(actions) attrs['_actions'] = actions return attrs def create(self, validated_data): actions = validated_data.pop('_actions', []) instance = Webhook.objects.create(**validated_data) instance.set_actions(actions) return instance def update(self, instance, validated_data): actions = validated_data.pop('_actions', []) instance = super().update(instance, validated_data) instance.set_actions(actions) return instance def to_representation(self, instance): instance._actions = instance.get_actions() return super().to_representation(instance) class WebhookSerializerForUpdate(WebhookSerializer): """Serializer class for updating webhooks Used to forbid updating project field.""" class Meta(WebhookSerializer.Meta): read_only_fields = WebhookSerializer.Meta.read_only_fields + ('project',)