2017-05-17 16 views
1

Djangoが新しく、管理パネルでインライン画像を表示する方法を変更しようとしています。 「現在」の上にプレビュータグを追加してサムネイルを表示できますか?可能であるDjangoのサムネイルを表示するadmin inline

enter image description here

+0

たぶん、この解決策は同様に、あなたのケースで仕事ができる:http://stackoverflow.com/a/38718010/621690 – Risadinha

答えて

0

。私は少し前にこのようなことをしました。残念ながら私はもうコードを見つけることができません。 django管理者の表現を変更するには、使用しているデフォルト管理者テンプレートを上書きする必要があります。 docs

0

あなたがmodel.pyにメソッドを追加することをお勧めします:

def thumbnail(self): 
    return u'<img src="%s" />' % (self.image.url) 

thumbnail.short_description = 'Thumbnail' 

次にadmin.pyに追加したいと思う:

追加されます
fields = ('thumbnail',) 
readonly_fields = ('thumbail',) 

そこにサムネイル。

+0

私はそれをしましたが、私は同じ機能をインラインイメージに求めました。 – Shaniqwa

4

私は大量の掘削の後にそれをすることができました。残念ながら私が使用したソースは見つかりませんでした(あまりにも多くのタブ、あまりにも多くは動作しませんでした..)。だからアイデアは、イメージウィジェットを作成することでした、いくつかのHTMLスクリプトを追加します。

from django.contrib.admin.widgets import AdminFileWidget 

class AdminImageWidget(AdminFileWidget): 
     def render(self, name, value, attrs=None): 
     output = [] 
     if value and getattr(value, "url", None): 
       image_url = value.url 
       file_name=str(value) 
       output.append(u' <a href="%s" target="_blank"><img src="%s" alt="%s" width="150" height="150" style="object-fit: cover;"/></a> %s ' % \ 
      (image_url, image_url, file_name, _(''))) 
    output.append(super(AdminFileWidget, self).render(name, value, attrs)) 
    return mark_safe(u''.join(output)) 


class CollectionImageInline(admin.TabularInline): 
    formfield_overrides = {models.ImageField: {'widget': AdminImageWidget}} 

結果:(私はこの問題に関係なく、デフォルトに管理者のテーマを変更) enter image description here

+1

これは、感謝しました。私は上にインポートを追加します: 'from django.utils.safestring import marksafe django.db import models' – horbor

関連する問題