Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

951
Vistas
¿Cómo establecer el tamaño máximo de imagen para cargar una imagen en django-ckeditor?

Estoy usando django-ckeditor para que mi proyecto cargue imágenes junto con contenido de texto.
Usé body = RichTextUploadingField (en blanco = Verdadero, nulo = Verdadero) en el modelo. Ahora quiero restringir al usuario para que cargue imágenes de gran tamaño en el contenido o más grandes que la altura/anchura máxima predefinida. Quiero las imágenes cargadas en contenido de altura/peso particular y tamaño como menos de 1 mb.

¿Cómo puedo predefinir la altura y el ancho máximos de la imagen, así como el límite máximo del tamaño de la imagen?

¿Hay alguna forma de definirlo desde la configuración de django-ckeditor?

¿O cómo cambiar el tamaño de las imágenes cargadas desde el contenido en el backend después de que el usuario envió el formulario?

Aquí está mi models.py:

 class Post(models.Model): STATUS_CHOICES = { ('draft', 'Draft'), ('published', 'Published'), } title = models.CharField(max_length=250) slug = models.SlugField(max_length=250, unique=True) author = models.ForeignKey(User, on_delete=models.CASCADE) body = RichTextUploadingField(blank=True, null=True) status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='draft')

Intenté mucho para resolverlo pero fallé. ¿Alguna sugerencia para resolver el problema? Gracias por adelantado.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Creo que debería haber una manera de cambiar el tamaño de la imagen al cargarla. Pero para ser honesto, no encontré ni en la documentación ni en la depuración.

Sin embargo, puedo sugerirle una solución alternativa para posprocesar todas las imágenes dentro del contenido al guardar el modelo de publicación.

modelos.py

 from django.conf import settings from PIL import Image def resize_image(filename): """ here goes resize logic. For example, I've put 50% of current size if width>=900. Might be something more sophisticated """ im = Image.open(filename) width, height = im.size if width >= 500: im = im.resize((int(width * 0.5), int(height * 0.5))) im.save(filename) class Post(models.Model): ... body = RichTextUploadingField(blank=True, null=True) ... def save(self, *args, **kwargs): for token in self.body.split(): # find all <img src="/media/.../img.jpg"> if token.startswith('src='): filepath = token.split('=')[1].strip('"') # get path of src filepath = filepath.replace('/media', settings.MEDIA_ROOT) # resolve path to MEDIA_ROOT resize_image(filepath) #do resize in-place super().save(*args, **kwargs)

La solución no es muy agradable porque cambia el tamaño de la imagen solo después de cargarla.

Probablemente, la biblioteca en sí misma debería tener algún tipo de punto de salida/devolución de llamada para el preprocesamiento de imágenes cuando se carga.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede establecer CKEDITOR_THUMBNAIL_SIZE en setting.py

 CKEDITOR_THUMBNAIL_SIZE = (500, 500)

Con el backend de la pillow , puede cambiar el tamaño de la miniatura con la configuración CKEDITOR_THUMBNAIL_SIZE (anteriormente THUMBNAIL_SIZE). Valor predeterminado: (75, 75)

Con el backend de la pillow , puede convertir y comprimir las imágenes cargadas a jpeg para ahorrar espacio en el disco. Establezca la configuración CKEDITOR_FORCE_JPEG_COMPRESSION en True ( False predeterminado). Puede cambiar la configuración CKEDITOR_IMAGE_QUALITY (anteriormente IMAGE_QUALITY ), que se pasa a Pillow :

La calidad de imagen, en una escala de 1 (peor) a 95 (mejor). El valor predeterminado es 75. Deben evitarse los valores superiores a 95; 100 desactiva partes del algoritmo de compresión JPEG y da como resultado archivos grandes sin apenas ganancia en la calidad de la imagen.

Esta característica está deshabilitada para imágenes animadas.

consulte el documento oficial. https://github.com/django-ckeditor/django-ckeditor/blob/master/README.rst

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda