/ / models.pyのsettings.pyからMEDIA_URLを参照するには? - django、django-models、django-admin、django-settings、django-media

models.pyのsettings.pyからMEDIA_URLを参照するには? - django、django-models、django-admin、django-settings、django-media

私はモデルでビューを部分的に掘り下げることが最も美しいものではないかもしれないが、今のところ私はこのように自分の問題を解決したいと思う。

あるクラスの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は1

OK。私はそれを得たと思う。とにかくそれをどう対処するかコメントすると、よりうまくいくでしょう。

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を参照してください。