You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Admin添加页Summernote报错:TypeError: $ is not a function

Django Summernote 「$ is not a function」错误修复方案

核心原因

尽管Network显示jQuery已加载,但summernote初始化时无法访问$,通常是加载顺序错误或**$被其他脚本覆盖**导致。

解决步骤

  • 强制指定jQuery优先加载
    在你的模型Admin类中手动定义静态资源加载顺序,确保jQuery在summernote之前:

    from django.contrib import admin
    from .models import YourModel
    
    class YourModelAdmin(admin.ModelAdmin):
        class Media:
            js = (
                'jquery/jquery.min.js',  # 本地或CDN的jQuery路径
                'summernote/summernote.min.js',
                'summernote/lang/summernote-zh-CN.min.js',
            )
            css = {
                'all': ('summernote/summernote.min.css',)
            }
    
    admin.site.register(YourModel, YourModelAdmin)
    

    注:使用CDN的话,替换为'https://code.jquery.com/jquery-3.7.1.min.js'这类地址即可。

  • 避免$作用域冲突
    修改summernote的初始化逻辑,用jQuery替代$,或者用自执行函数锁定作用域:

    jQuery(document).ready(function($) {
        // 这里可以安全使用$
        initSummernote_id_content();
    });
    

    也可以直接修改initSummernote_id_content函数内的所有$为jQuery。

  • 验证静态资源配置

    1. 确认INSTALLED_APPS包含'django_summernote'
    2. 生产环境执行python manage.py collectstatic确保静态文件被正确收集
    3. 开发环境保持DEBUG=True,确保静态资源路由生效
  • 清理浏览器缓存
    按Ctrl+Shift+R强制刷新页面,避免旧缓存导致的资源加载异常。

错误详情:add/:814 Uncaught TypeError: $ is not a function<br>at initSummernote_id_content (add/:814:5)<br>at add/:954:5

内容的提问来源于stack exchange,提问作者Lawrence DeSouza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 03:22:37