打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
django xadmin后台列表显示图片而不是url字符串

这就是本文章要实现的功能,django xadmin 后台显示图片,并且可以放大和关闭。

1.首先检查settings.py配置

必须包含下面两行,不一定要固定写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)

2.然后定义models的时候

正常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

3.我画个图简单说下注意事项(黄框的都是可以自由更改的)

4.在xadmin.py中就不需要在列表页显示image字段了,而是显示image_img字段


注册什么的就不说了

5.进入你的后台嗨皮吧

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python测试开发django-48.xadmin上传图片django-stdimage
django上传图片和PIL生成缩略图
Django--网页显示图片
Django集成已有的数据库和应用
django项目快速搭建入门指导
Python做一个属于自己的web网站「下」
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服