必须包含下面两行,不一定要固定写medias,可以随心所欲为所欲为
MEDIA_URL = '/medias/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'medias')
然后在你的总路由文件中,默认是urls.py,过如下修改
# 导包
from django.conf.urls.static import static
.......
# 在最后加上,其中settings是settings.py导入数据
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
正常image = models.ImageField()这一行都会写,重点是自定义的image_img函数,先导包format_html,这个包django自带
# 要导入format_html这个包
from django.utils.html import format_html
class ShareIcon(models.Model):
SHARE_ICON = (
(0, '分享图标'),
)
name = models.SmallIntegerField(choices=SHARE_ICON, unique=True, default=0, verbose_name="分享")
image = models.ImageField(upload_to="shareicon", verbose_name='图标')
def image_img(self):
# 这里添加一个防空判断
if not self.image:
return '无'
return format_html(
"""<div οnclick='$(".my_set_image_img").hide();$(this).next().show();'><img src='{}' style='width:50px;height:50px;' >放大</div><div class='my_set_image_img' οnclick="$('.my_set_image_img').hide()" style="z-index:9999;position:fixed; left: 100px; top:100px;display:none;"><img src='{}' style='width:500px; height:500px;'></div>""",
self.image.url, self.image.url)
image_img.short_description = '图片'
class Meta:
db_table = 'share_icon'
verbose_name = '分享图标'
verbose_name_plural = verbose_name
联系客服