2012-10-07 33 views
8

我嘗試使用Django sorl-thumbnail,但它不顯示圖像(並且沒有顯示任何錯誤)。Django sorl-thumbnail不顯示圖像

Settings.py:

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

型號:

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

模板:

<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')}), 

回答

3

Have you imported來自sorl的ImageField在模型定義中?有必要讓它自動運行。

此外you need to run in console./manage.py syncdb,因爲在默認配置中,sorl將縮略圖的緩存名稱保留在數據庫中。它必須在數據庫中爲它創建自己的表。

你還可以顯示你的STATIC_URL,STATICFILES_DIRS等設置嗎?

13

實際上,使用來自sorl的ImageField僅在刪除原始圖像時才需要automatically delete縮略圖。

如果縮略圖創建不成功,默認情況下,sorl.thumbnail不會顯示任何錯誤,並且會自動失敗。要查看錯誤,請將

THUMBNAIL_DEBUG = True 

添加到您的settings.py中。這應該可以幫助你解決問題。

+0

將上述設置添加到設置文件中,仍然沒有錯誤,也沒有渲染圖像。 :/ – Amyth

+0

非常有幫助!謝謝。 – JDavies