Пример #1
0
class PhotoSerializer(serializers.ModelSerializer):
    src = HybridImageField()

    class Meta:
        model = Photo
        fields = ('copyright', 'src')
        list_serializer_class = ListWithDefaultSerializer
Пример #2
0
    def test_hybrid_image_field(self):
        field = HybridImageField()
        with patch('drf_extra_fields.fields.Base64FieldMixin') as mixin_patch:
            field.to_internal_value({})
            self.assertTrue(mixin_patch.to_internal_value.called)

        with patch('drf_extra_fields.fields.Base64FieldMixin') as mixin_patch:
            mixin_patch.to_internal_value.side_effect = ValidationError('foobar')
            with patch('drf_extra_fields.fields.ImageField') as image_patch:
                field.to_internal_value({})
                self.assertTrue(mixin_patch.to_internal_value.called)
                self.assertTrue(image_patch.to_internal_value.called)
Пример #3
0
class UserBaseSerializer(serializers.DynamicModelSerializer):
    class Meta:
        model = User
        name = 'user'
        fields = ('id', 'location', 'groups', 'data', 'uploaded_at')
        read_only_fields = ('uploaded_at', )

    location = fields.DynamicRelationField('LocationSerializer', embed=True)
    groups = fields.DynamicRelationField('GroupSerializer',
                                         many=True,
                                         deferred=True,
                                         embed=True)
    data = HybridImageField(required=False)
Пример #4
0
class PhotoUploadSerializer(serializers.ModelSerializer):
    photo = HybridImageField()

    class Meta:
        model = models.Photo
        fields = (
            'photo',
            'caption',
        )

        def create(self, validated_data):
            photo = validated_data.pop('photo')

            return models.Photo.objects.create(photo=photo)
Пример #5
0
class DadosCriancaCreateSerializer(serializers.ModelSerializer):
    sexo_crianca = serializers.ChoiceField(choices=DadosCrianca.SEXO)
    filiacao1_sexo = serializers.ChoiceField(choices=DadosCrianca.SEXO)
    filiacao2_sexo = serializers.ChoiceField(choices=DadosCrianca.SEXO)
    raca_cor_crianca = serializers.ChoiceField(choices=DadosCrianca.RACA_COR)
    tipo_responsavel = serializers.ChoiceField(
        choices=DadosCrianca.TIPO_RESPONSAVEL)
    certidao_crianca = HybridImageField(required=True)

    class Meta:
        model = DadosCrianca
        fields = ('cpf', 'nome_crianca', 'sexo_crianca',
                  'nacionalidade_crianca', 'dt_entrada_brasil',
                  'dt_nasc_crianca', 'uf_nasc_crianca',
                  'municipio_nasc_crianca', 'raca_cor_crianca', 'tem_nee',
                  'tipo_nee', 'filiacao1_nome', 'filiacao1_falecido',
                  'filiacao1_sexo', 'filiacao1_nacionalidade',
                  'filiacao2_consta', 'filiacao2_nome', 'filiacao2_falecido',
                  'filiacao2_sexo', 'filiacao2_nacionalidade', 'cep_moradia',
                  'endereco_moradia', 'numero_moradia', 'complemento_moradia',
                  'tipo_responsavel', 'parentesco_responsavel',
                  'nome_responsavel', 'cpf_responsavel', 'dt_nasc_responsavel',
                  'email_responsavel', 'telefone_responsavel',
                  'telefone_opcional', 'certidao_crianca', 'irmao_na_rede',
                  'nome_irmao')

    def validate_certidao_crianca(self, value):
        if not value:
            raise serializers.ValidationError("Certidão deve ser enviado")
        return value

    def validate_cpf(self, value):
        if not value:
            raise serializers.ValidationError("CPF é obrigatório")

        return value

    def validate(self, attrs):
        for campo in DadosCrianca.CAMPOS_PRA_NORMALIZAR:
            try:
                attrs[campo] = remover_acentos(str(attrs[campo]).upper())
            except KeyError as e:
                attrs[campo] = ''
        dado_crianca = DadosCrianca.objects.filter(cpf=attrs['cpf']).last()
        if dado_crianca:
            attrs['atualizacao_cadastral'] = 'SIM'

        return attrs
Пример #6
0
class AddShoppingItemSerializer(serializers.ModelSerializer):
    included_serializers = {
        'user': '******',
    }

    # This field allows the receipt of a bit stream from Android
    image = HybridImageField()

    class Meta:
        model = ShoppingItem
        fields = (
            # Attributes
            'name',
            'image',
            'price',

            # Foreign Key
            'user',
        )