admin.py 855 Bytes
from django.contrib import admin
from django.core.exceptions import ValidationError
from django.utils import timezone

from .models import Edicto, Precio

# Register your models here.


class PrecioAdmin(admin.ModelAdmin):
    def save_model(self, request, obj, form, change):
        precios_activos = Precio.objects.filter(vigencia_hasta__gte=timezone.now().date())
        if not change:
            today = timezone.now().date()
            if obj.vigencia_desde <= today:
                if not precios_activos.exists():
                    obj.save()
                else:
                    raise ValidationError("Ya existe un precio activo.")
            else:
                raise ValidationError("La fecha de inicio no es válida.")
        else:
            obj.save()


admin.site.register(Precio, PrecioAdmin)


admin.site.register(Edicto)