2012-10-07 18 views
8

Intento usar Django sorl-thumbnail pero no muestra imágenes (y no muestra ningún error).Django sorl-thumbnail no muestra imágenes

settings.py:

INSTALLED_APPS = (
    .... 
    'sorl.thumbnail', 
) 

Modelos:

class Toy(models.Model): 
    name = models.CharField(max_length=50, verbose_name=u'Name') 
    image = ImageField(upload_to='site_media/images') 

plantillas:

<div id="toy"> 
       {% for p in toys %} 
        <div class="toy"> 
           # toy.image - this is model_name.image field 
          {% thumbnail toy.image "100x700" as im %} 
          <img style="margin:{{ im|margin:"100x700" }}" src="{{ im.url }}" width="{{ im.x }}" height="{{ im.y }}"> 
          {% endthumbnail %} 

          <p> 
          <span> {{ p.name }} </span> 
          <span> {{p.unit_price}} </span> 
          </p> 
        </div> 
       {% endfor %} 
      </div> 

urls.py:

url(r'^site_media/(.*)$', 'django.views.static.serve', {'document_root' : os.path.join(os.path.dirname(__file__), 'site_media')}), 

Respuesta

3

Have you imported ImageField from sorl en la definición del modelo? Es necesario hacerlo funcionar automáticamente.

Además you need to run in console./manage.py syncdb porque en la configuración predeterminada sorl mantiene los nombres de miniaturas en caché en la base de datos. Tiene que crear su propia tabla en la base de datos para eso.

¿Podría mostrar también sus configuraciones de STATIC_URL, STATICFILES_DIRS, etc.?

13

En realidad, usar ImageField desde sorl solo es necesario para automatically delete miniaturas cuando se elimina la imagen original.

sorl.thumbnail de forma predeterminada no muestra ningún error y falla silenciosamente si la creación de miniaturas no se realizó correctamente. Para ver los errores, agregue

THUMBNAIL_DEBUG = True 

a su settings.py. Esto debería ayudarlo a solucionar el problema.

+0

Agregó las configuraciones anteriores al archivo de configuración, todavía no hay errores ni imágenes procesadas. :/ – Amyth

+0

¡Muy útil! Gracias. – JDavies