一 使用环境
开发系统: 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',)