一 使用環境
開發系統: windows
IDE: pycharm
數據庫: msyql,navicat
編程語言: python3.7 (Windows x86-64 executable installer)
虛擬環境: virtualenvwrapper
開發框架: Django 2.2
二 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',)