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

为何在Django项目中使用Crispy-forms会出现No module named 'django.utils.lru_cache'错误?

Django Crispy-forms 导入错误解决方案

错误原因

你遇到的No module named 'django.utils.lru_cache'报错是版本不兼容导致的:

  • Django 4.0+ 已移除django.utils.lru_cache模块
  • 你使用的crispy-forms 1.14.0为旧版本,仍依赖这个已被移除的模块,触发模板库导入失败。

解决步骤

  1. 升级crispy-forms到兼容版本
    在虚拟环境中执行升级命令:

    pip install --upgrade django-crispy-forms>=2.0
    

    2.0及以上版本的crispy-forms已适配Django 4.x及更高版本。

  2. 确认项目配置
    打开settings.py,确保crispy_forms在INSTALLED_APPS中,同时配置对应样式框架的模板包(以Bootstrap5为例):

    INSTALLED_APPS = [
        # 其他已存在的应用
        'crispy_forms',
        'crispy_bootstrap5',
    ]
    
    CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
    CRISPY_TEMPLATE_PACK = "bootstrap5"
    

    若使用其他样式框架,替换为对应的模板包即可(如bootstrap4)。

  3. 简化模板代码
    升级后的crispy_forms_tags已包含过滤器功能,可移除模板中多余的{% load crispy_forms_filters %},简化后代码如下:

    {% extends "blog/base.html" %}
    {% load crispy_forms_tags %}
    {% block content %}
        <div class="content-section">
            <form method="POST">
                {% csrf_token %}
                <fieldset class="form-group">
                    <legend class="border-bottom mb-4">Join Today</legend>
                    {{ form|crispy }}
                </fieldset>
                <div class="form-group">
                    <button class="btn btn-outline-info" type="submit">Sign Up</button>
                </div>
            </form>
            <div class="border-top pt-3">
                <small class="text-muted">
                    Already Have An Account? <a class="ml-2" href="#">Sign In</a>
                </small>
            </div>
        </div>
    {% endblock content %}
    

原始报错信息

File "D:\Django_Project\venv\lib\site-packages\django\template\backends\django.py", line 131, in get_package_libraries
raise InvalidTemplateLibrary(django.template.library.InvalidTemplateLibrary: Invalid template library specified. ImportError raised when trying to 'crispy_forms.templatetags.crispy_forms_field': No module named 'django.utils.lru_cache'

内容的提问来源于stack exchange,提问作者Kaiser Nabola

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:27:13