示例#1
0
    def validate(self, serializer: BaseSerializer):
        if serializer.is_valid():
            return

        # Log a sanitized version of serializer.errors with minimal information about the
        # remote response's contents. errors is supposed to be a map with field names as keys
        # (https://www.django-rest-framework.org/api-guide/serializers/#validation),
        # but in list views, it's a ReturnList of such dicts.
        error_fields = set()
        if isinstance(serializer.errors, dict):
            error_fields = set(serializer.errors.keys())
        else:
            for error in serializer.errors:
                error_fields |= error.keys()

        logger.error("Fields %s in the remote response did not validate", sorted(error_fields))

        raise RemoteAPIException(
            title="Invalid remote data",
            detail="Some fields in the remote's response did not match the schema",
            code="validation_errors",
            status_code=status.HTTP_502_BAD_GATEWAY,
        )
示例#2
0
 def perform_create(self, serializer: BaseSerializer) -> None:
     abilities = retrieve_pokemon_abilities(serializer.validated_data['name'])
     serializer.save(abilities=abilities)
示例#3
0
 def perform_create(self, serializer: BaseSerializer) -> None:
     serializer.save(creator=self.request.user)
示例#4
0
 def perform_create(self, serializer: serializers.BaseSerializer):
     print(serializer.validated_data)
     serializer.save()
示例#5
0
 def perform_create(self, serializer: serializers.BaseSerializer):
     print(serializer.validated_data)
     serializer.run_validation(serializer.validated_data)
     if serializer.is_valid():
         serializer.save()
示例#6
0
 def perform_create(self, serializer: BaseSerializer):
     serializer.save(user_type='visitor')
示例#7
0
 def perform_create(self, serializer: BaseSerializer):
     serializer.save(user_type=HOST_REPR)
示例#8
0
class BaseListSerializer(Serializer):
    data = ListSerializer(
        required=False, allow_empty=True,
        child=BaseSerializer(required=False, allow_null=True),
    )
示例#9
0
class BaseObjectSerializer(Serializer):
    data = BaseSerializer(required=False, allow_null=True)
示例#10
0
 def test_expander_adapter_missing(self):
     self.assertRaises(ExpanderAdapterMissing, ExpanderAdapterStrategy, BaseSerializer())
示例#11
0
文件: mixins.py 项目: einsfr/mmkit2
 def perform_create(self, serializer: BaseSerializer) -> None:
     with transaction.atomic():
         instance = serializer.save()
         user = self.request.user  # Из-за этой строки можно использовать только с наследниками APIView
         instance.log_activity_create(user=user if not user.is_anonymous() else None)
         self.hook_post_create(instance)