serializer.py
2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from rest_framework import serializers
from .constants import EXTENSIONES_VALIDAS
from .models import Edicto, Precio
from usuario.serializers import UsuarioListaSerializer
class EdictoSerializer(serializers.ModelSerializer):
included_serializers = {
'usuario': UsuarioListaSerializer,
'usuario_movimiento': UsuarioListaSerializer,
}
class Meta:
model = Edicto
fields = ('usuario',
'usuario_movimiento',
'estado',
'cuerpo_edicto',
'cantidad_palabras',
'dias_publicar',
'cantidad_sellos',
'cantidad_copias',
'archivo',
'fecha_creacion',
'observaciones',
'fecha_publicacion',
'fecha_modificacion'
)
extra_kwargs = {
'archivo': {'read_only': True}
}
read_only_fields = ('usuario', 'usuario_movimiento',
'fecha_publicacion', 'cantidad_palabras',
'fecha_creacion',
'fecha_modificacion',
)
def to_representation(self, instance):
data = super().to_representation(instance)
if instance.fecha_modificacion is not None and self.context['request'].method == 'PATCH':
data['fecha_modificacion'] = instance.fecha_modificacion
else:
data['fecha_modificacion'] = None
return data
@staticmethod
def validate_archivo(value):
filename, extension = value.name.rsplit(".", 1)
if extension.lower() not in EXTENSIONES_VALIDAS:
raise serializers.ValidationError("Archivos permitidos: .pdf")
return value
class PrecioSerializer(serializers.ModelSerializer):
class Meta:
model = Precio
fields = ('usuario',
'moneda',
'precio',
'precio_ejemplar',
'vigencia_desde',
'vigencia_hasta',
)
included_serializers = {
'usuario': UsuarioListaSerializer
}