4

sorl-thumbnail のドキュメントを見てきましたが、次の方法がまだわかりません。 1. 画像を sorl-thumbnail にアップロードします。2. sorl サムネイルから画像を選択的に表示します。(たとえば、ビューの sorl-thumbnail から特定の画像を読み込み、カスタマイズされたサイズで表示するなど)

このライブラリを django ビューで使用する方法について、具体的な例を挙げていただけますか?

前もって感謝します : )

4

3 に答える 3

11

より高い柔軟性が必要な場合は、ビューでサムネイルを生成できます。以下は、sorl-thumbnail のドキュメントから直接引用したものです。

from sorl.thumbnail import get_thumbnail

im = get_thumbnail(my_file, '100x100', crop='center', quality=99)

imthumbnailthen は、テンプレート タグから返されるものと同じです。したがって、その変数をテンプレート コンテキスト、またはその一部に追加できます。たとえば、単に URL が必要な場合:

my_context = {
    'image_url': im.url,
}
于 2012-06-19T15:22:10.027 に答える
8

サムネイル テンプレート タグを使用して sorl.thumbnail を使用できます。次に例を示します。

{% load thumbnail %}

{% thumbnail recipe.image "430x250" as thumb %}
     <img src="{{ thumb.url }}" width="{{ thumb.width }}" height="{{ thumb.height }}" alt="{{ recipe.title }}" />
{% endthumbnail %}

画像を sorl.thumbnail にアップロードしたり、sorl.thumbnail からロードしたりしません。適切な構成の後、画像のサイズが自動的に変更されて保存され、thumbnailテンプレート タグを使用して画像の適切な URL を取得できます。

于 2012-06-19T10:30:35.907 に答える
1

sorl-thumbnail を使用する必要がある場合、2 種類の画像を区別します。

ImageField を持つ Django オブジェクト

ImageField を使用して Django にオブジェクトがある場合、次のようなサムネイルでレンダリングします。

# Let's supose our object imagefield is called img
{% thumbnail obj.img "100" upscale=false as im %}
   <img src="{{ im.url }}"/>
{% empty %}  # In case the object doesn't have an image, use generic one
   {% thumbnail "img/empty_img.jpg" "236" upscale=false as im %}
        <img src="{{ im.url }}" />
   {% endthumbnail %}
{% endthumbnail %}  

URL/パス別の画像

プロジェクトのローカル パスを使用してイメージをロードするには:

{% thumbnail "img/myImage.jpg" "236" upscale=false as im %}
    <img src="{{ im.url }}" />
{% endthumbnail %}

重要:サムネイルはMEDIA_URLを指定したパスに連結することに注意してください。この場合、次のようなパスが必要です。yourapp/media/img/myImage.jpg

URLを使用して画像を読み込むのは簡単で、サンプルです。

{% thumbnail "http://www.nextgen-gallery.com/wp-content/uploads/2008/12/abend.jpg" "236" upscale=false as im %}
    <img src="{{ im.url }}" />
{% endthumbnail %}
于 2015-05-07T07:55:10.253 に答える