django simpleui 的进阶用法,挂载自定义js,实现自定义功能

这篇博客介绍了如何在Django admin中挂载自定义JS,展示了一个实例:通过点击狗的头像在弹窗中显示大图。详细步骤包括在`DogAdmin`类中定义`img`方法生成带点击事件的头像HTML,并挂载`custom.js`来实现图片放大功能。此外,还展示了如何挂载CSS和CDN资源。这个例子展示了Django admin的可扩展性,可以用于增强后台管理界面的各种交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在admin类里面挂载自定义js

@admin.register(Dog)
class DogAdmin(admin.ModelAdmin):
    list_display = ('img', 'name', 'age', 'operate')
    list_display_links = ('name',)

    # 在list页面显示头像
    @admin.display(description='头像', ordering='name')
    def img(self, obj):
        # 在custom.js里面实现了show_pic函数,onclick进行调用
        div = f"""<img id='icon_{obj.id}' src='{obj.icon.url}' 
        width='32px' οnclick='show_pic("{obj.icon.url})"' />"""
        return mark_safe(div)
    # 挂载自定义的js,css也可以挂,可以挂载本地文件,也可以挂载网络文件
    class Media:
        js = ('js/custom.js',
              #   也可以挂载cdn文件,这里仅示例
              #  'https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js',
             )

在static/js/custom.js 的函数


function show_pic(icon_url) {
    let msg_html = `<img src="${icon_url}" width="400px" />`
    // $alert接收3个参数,data,title,options
    // options使用案例可以参考https://element.eleme.cn/#/zh-CN/component/message-box#options
    self.parent.app.$alert(msg_html, '这里是title', {
        dangerouslyUseHTMLString: true
    })
}

这样就实现了点击头像展开大图的功能了,也可以通过挂载js扩展更多django admin的功能。
Vue挂载的一些东西实例

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值