私はモデルでビューを部分的に掘り下げることが最も美しいものではないかもしれないが、今のところ私はこのように自分の問題を解決したいと思う。
あるクラスのmodels.pyで私は定義します:
def admin_image(self):
return "<img src="/images//media/%s"/>" % self.thumbnail.photo
admin_image.allow_tags = True
しかし、ハードコーディングされた/ media / thereの代わりにMEDIA_URLが使用されますが、どのように呼び出すのか分かりません。私はdjangoの初心者ですので、親切にしてください:)
私のsettings.pyで私は定義した:
PROJECT_ROOT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))
MEDIA_ROOT = os.path.join(PROJECT_ROOT_PATH, "media/")
MEDIA_URL = "/media/"
admin.pyでは私が使う readonly_fields = ["admin_image"]
list_displayとfieldsetsでそれを使用します。
回答:
回答№1は1OK。私はそれを得たと思う。とにかくそれをどう対処するかコメントすると、よりうまくいくでしょう。
models.py:
from django.conf import settings
def admin_image(self):
return "<img src="/images/"+settings.MEDIA_URL+"%s"/>" % self.thumbnail.photo
admin_image.allow_tags = True
回答№2の場合は0
ビュー内にのみメディアプレフィックスを追加します。それを行う方法を参照してください: https://docs.djangoproject.com/en/1.6/ref/templates/builtins/#get-media-prefix
テンプレート内のobj.thumbnail.photoを参照してください。