39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
from rest_framework import serializers
|
|
|
|
from .models import Document, Fuente, DocumentType
|
|
|
|
|
|
|
|
from api.customs.models import Pedimento
|
|
|
|
class DocumentSerializer(serializers.ModelSerializer):
|
|
pedimento_numero = serializers.SerializerMethodField(read_only=True)
|
|
pedimento = serializers.PrimaryKeyRelatedField(queryset=Pedimento.objects.all())
|
|
|
|
class Meta:
|
|
model = Document
|
|
fields = ('id', 'organizacion', 'pedimento', 'pedimento_numero', 'archivo', 'document_type', 'size', 'extension', 'fuente','created_at', 'updated_at')
|
|
read_only_fields = ('id', 'size', 'extension', 'created_at', 'updated_at', 'pedimento_numero')
|
|
|
|
def get_pedimento_numero(self, obj):
|
|
if obj.pedimento:
|
|
return obj.pedimento.pedimento_app
|
|
return None
|
|
|
|
def validate_archivo(self, value):
|
|
"""Validar que se proporcione un archivo"""
|
|
if not value:
|
|
raise serializers.ValidationError("Se requiere un archivo para subir")
|
|
return value
|
|
|
|
class FuenteSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Fuente
|
|
fields = ('id', 'nombre', 'descripcion')
|
|
read_only_fields = ('id','nombre', 'descripcion')
|
|
|
|
class DocumentTypeSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = DocumentType
|
|
fields = ('id', 'nombre', 'descripcion')
|
|
read_only_fields = ('id', 'nombre', 'descripcion') |