Quantcast
Channel: ¿Como eliminar imágenes almacenadas en media usando DeleteView en DJango? - Stack Overflow en español
Viewing all articles
Browse latest Browse all 2

¿Como eliminar imágenes almacenadas en media usando DeleteView en DJango?

0
0

Tengo el siguiente modelo Cliente:

def custom_upload_to(instance, filename):    try:        old_instance = Cliente.objects.get(pk=instance.pk)        old_instance.photo.delete()        return 'clientes/'+ filename    except:        return 'clientes/'+ filenameTIPOS_DOCUMENTOS = (    (0, 'Tarjeta de indentidad'),    (1, 'Cédula'),    (2, 'Pasaporte'),    (3, 'Cédula extranjería'),)class Cliente(models.Model):    name = models.CharField(verbose_name="Nombre", max_length=200)    last_name = models.CharField(verbose_name="Apellidos", max_length=200, null=True, blank=True)    document_type = models.IntegerField(verbose_name="Tipo de documento", choices=TIPOS_DOCUMENTOS, default=1)    document = models.CharField(verbose_name="Número de documento", max_length=200, unique=True)    cell_phone = models.CharField(verbose_name="Celular", max_length=200, null=True, blank=True)    phone = models.CharField(verbose_name="Telefono", max_length=200, null=True, blank=True)    birthdate = models.DateField(verbose_name="Fecha de nacimiento", null=True, blank=True)    email = models.EmailField(verbose_name="Correo electronico", null=True, blank=True, unique=True)    direction = models.CharField(verbose_name="Dirección", max_length=200, null=True, blank=True)    photo = models.ImageField(upload_to=custom_upload_to, null=True, blank=True)    created = models.DateTimeField(auto_now_add=True, verbose_name="Fecha de creación")    updated = models.DateTimeField(auto_now=True, verbose_name="Fecha de edición")    def __str__(self):        return ('{} {}'.format(self.name, self.last_name))    def get_tipo_documento(self):        tipo = TIPOS_DOCUMENTOS[self.document_type][1]        return tipo    class Meta:        db_table = 'cliente'

Y tengo esta view para el modelo

class ClienteDelete(LoginRequiredMixin, SuperuserRequiredMixin, DeleteView):    model = Cliente    success_url = reverse_lazy('cliente:list')    template_name = 'cliente/cliente_confirm_delete.html'

Este es mi proyecto

introducir la descripción de la imagen aquí

y resulta que cuando elimino un cliente no se me esta eliminado la imagen del mismo, ¿qué puedo hacer para que cuando se elimine el cliente al mismo tiempo se elimine la imagen?

He pensado en sobre escribir algun metodo como el def get o algo asi pero no se como hacerlo,

Gracias por la ayuda


Viewing all articles
Browse latest Browse all 2

Latest Images





Latest Images