1. 程式人生 > 其它 >圖片路徑設定顯示為圖片

圖片路徑設定顯示為圖片

Django Admin 圖片路徑設定顯示為圖片(imageField顯示方法設定)

1.在 sttings.py 中設定

# 設定上傳圖片儲存路徑,所有上傳圖片自動儲存的到media檔案下
MEDIA_ROOT = os.path.join(BASE_DIR, "media")  # 多媒體檔案存放處
MEDIA_URL = "/media/"  # 這個會自動加在FileField的upload_to的前面

2.在 urls.py 中設定

from django.contrib import admin
from django.urls import path, re_path
from django.views.static import serve
from A02CABJ import settings  # 自已專案中的settings
urlpatterns = [
    re_path(r'^media/(?P<path>.+)$', serve, {'document_root': settings.MEDIA_ROOT}),  # 圖片路徑設定
    path('admin/', admin.site.urls),
]

3. 在 admin.py 中設定方法

from django.utils.html import format_html  # models.py
from django.utils.safestring import mark_safe # imageField
@admin.register(Company)  # 自已註冊的admin
class CompanyAdmin(admin.ModelAdmin):
  # 方法一
    def logo(self, obj):  # imageField顯示方法設定,圖片路徑設為顯示圖片
        return mark_safe('<img src="%s" height="20" />' % obj.公司logo.url)

    # 方法二
    def logo1(self, obj):
        # 返回方法1
        # return format_html('<img src="{}" height="20" />', format(obj.公司logo.url))
        # 返回方法2
        return format_html('<img src="%s" height="20" />' % obj.公司logo.url)

    # 顯示頁面顯示欄位設定,只有改變標記標記方法時,加入的欄位才不加引號
    list_display = ('logo',  'logo1',)