9

Django sorl-thumbnail を使用しようとしましたが、画像が表示されません (エラーも表示されません)。

設定.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')}),
4

2 に答える 2

14

実際、sorl の ImageField を使用する必要があるのは、元の画像が削除されたときにサムネイルを自動的に削除するためだけです。

デフォルトでは、sorl.thumbnail はエラーを表示せず、サムネイルの作成が失敗した場合は警告なしで失敗します。エラーを表示するには、追加します

THUMBNAIL_DEBUG = True

あなたのsettings.pyに。これは、問題の解決に役立ちます。

于 2012-10-07T10:29:15.267 に答える
3

モデル定義で SORL から ImageFieldをインポートしましたか? 自動的に動作させる必要があります。

さらに、コンソールで実行する必要があり ./manage.py syncdbます。これは、デフォルトの設定では、sorl がサムネイルのキャッシュ名をデータベースに保持するためです。そのためには、データベースに独自のテーブルを作成する必要があります。

STATIC_URL、STATICFILES_DIRS などの設定も表示できますか?

于 2012-10-07T10:02:59.487 に答える