Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

953
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!