1

我知道在模型中对视图进行部分处理可能不是最美妙的事情,但现在我想以这种方式解决我的问题。

在我的models.py中,我定义了一个类:

def admin_image(self):
    return '<img src="/media/%s"/>' % self.thumbnail.photo
admin_image.allow_tags = True

但我希望使用 MEDIA_URL 而不是硬编码的 /media/ ,但不知道如何调用它。我是 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 和 fieldset 中使用它。

4

2 回答 2

1

好的。我想我明白了。无论如何,如何更好地处理它的评论将被重视。

在models.py中:

from django.conf import settings

def admin_image(self):
    return '<img src="'+settings.MEDIA_URL+'%s"/>' % self.thumbnail.photo
admin_image.allow_tags = True
于 2014-02-13T19:34:57.343 回答
0

仅在视图中附加媒体前缀。看看如何做到这一点:https ://docs.djangoproject.com/en/1.6/ref/templates/builtins/#get-media-prefix

并参考模板中的obj.thumbnail.photo。

于 2014-02-13T20:04:52.733 回答