Enzo Yair

reformateo_de_funcion_por_constante

@@ -14,3 +14,5 @@ STATUS_CHOICE = [ @@ -14,3 +14,5 @@ STATUS_CHOICE = [
14 (APROBADO,_('aprobado')), 14 (APROBADO,_('aprobado')),
15 (RECHAZADO, _('rechazado')), 15 (RECHAZADO, _('rechazado')),
16 ] 16 ]
  17 +
  18 +EXTENSIONES_VALIDAS = [".pdf", ".docx", ".jpg", ".jpeg", ".png"]
1 from django.db import models 1 from django.db import models
2 2
3 -  
4 -from .utils import valid_extension  
5 from .constants import STATUS_CHOICE 3 from .constants import STATUS_CHOICE
6 4
7 from usuario.models import Usuario 5 from usuario.models import Usuario
8 6
9 -  
10 # Create your models here. 7 # Create your models here.
11 8
12 9
@@ -29,7 +26,7 @@ class Precio (models.Model): @@ -29,7 +26,7 @@ class Precio (models.Model):
29 class Edicto(models.Model): 26 class Edicto(models.Model):
30 usuario = models.ForeignKey(Usuario, on_delete=models.CASCADE, verbose_name='Usuario', null=True) 27 usuario = models.ForeignKey(Usuario, on_delete=models.CASCADE, verbose_name='Usuario', null=True)
31 cuerpo_edicto = models.TextField(blank=False, null=False) 28 cuerpo_edicto = models.TextField(blank=False, null=False)
32 - archivo = models.FileField(upload_to="uploads/%Y/%m/%d/", null=False, blank=False, validators=[valid_extension]) 29 + archivo = models.FileField(upload_to="uploads/%Y/%m/%d/", null=False, blank=False)
33 dias_publicar = models.PositiveIntegerField(blank=False, null=False) 30 dias_publicar = models.PositiveIntegerField(blank=False, null=False)
34 cantidad_sellos = models.PositiveIntegerField(blank=False, null=False) 31 cantidad_sellos = models.PositiveIntegerField(blank=False, null=False)
35 estado = models.CharField(max_length=150, choices=STATUS_CHOICE, default='inciado') 32 estado = models.CharField(max_length=150, choices=STATUS_CHOICE, default='inciado')
1 from rest_framework import serializers 1 from rest_framework import serializers
2 - 2 +from .constants import EXTENSIONES_VALIDAS
3 3
4 from .models import Edicto 4 from .models import Edicto
5 5
@@ -10,7 +10,9 @@ class EdictoSerializer(serializers.ModelSerializer): @@ -10,7 +10,9 @@ class EdictoSerializer(serializers.ModelSerializer):
10 10
11 class Meta: 11 class Meta:
12 model = Edicto 12 model = Edicto
13 - fields = ('cuerpo_edicto', 13 + fields = ('usuario',
  14 + 'cuerpo_edicto',
  15 + 'estado',
14 'cantidad_palabras', 16 'cantidad_palabras',
15 'dias_publicar', 17 'dias_publicar',
16 'cantidad_sellos', 18 'cantidad_sellos',
@@ -18,3 +20,10 @@ class EdictoSerializer(serializers.ModelSerializer): @@ -18,3 +20,10 @@ class EdictoSerializer(serializers.ModelSerializer):
18 'fecha_publicacion', 20 'fecha_publicacion',
19 'archivo', 21 'archivo',
20 'fecha_creacion',) 22 'fecha_creacion',)
  23 +
  24 + @staticmethod
  25 + def validate_archivo(value):
  26 + filename, extension = value.name.rsplit(".", 1)
  27 + if extension.lower() not in EXTENSIONES_VALIDAS:
  28 + raise serializers.ValidationError("Archivos permitidos: .pdf, .docx, .jpg, .jpeg, .png")
  29 + return value