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

Django检查框架函数存放位置及自定义检查代码接入方法咨询

Django自定义检查的实现指南

代码存放位置

社区通用做法是把自定义检查代码放在对应app目录下的checks.py文件里——如果app里没有这个文件,直接新建就行,既符合约定也方便后续维护。

接入检查框架的具体步骤

1. 编写检查函数

在checks.py里定义检查逻辑,示例如下:

from django.core.checks import register, Warning
from django.conf import settings

def check_my_required_setting(app_configs, **kwargs):
    errors = []
    # 替换为你的实际检查逻辑,比如验证必填配置项
    if not hasattr(settings, 'MY_REQUIRED_SETTING') or not settings.MY_REQUIRED_SETTING:
        errors.append(
            Warning(
                '缺少必要配置项MY_REQUIRED_SETTING',
                hint='请在settings.py中添加该配置并赋值',
                id='myapp.W001',  # 自定义错误ID,格式为「app名.编号」
            )
        )
    return errors

2. 注册检查函数

有两种注册方式可选:

  • 全局注册:检查整个项目,直接用@register()装饰器:
    @register()
    def check_my_required_setting(app_configs, **kwargs):
        # 检查逻辑...
    
  • 指定App注册:仅检查特定app,给register()传app_configs参数:
    @register(app_configs=['myapp'])
    def check_my_required_setting(app_configs, **kwargs):
        # 检查逻辑...
    

3. 让Django识别检查函数

在app的apps.py文件中,修改AppConfig类的ready()方法,导入checks模块触发注册:

from django.apps import AppConfig

class MyAppConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'myapp'

    def ready(self):
        # 导入checks模块,确保注册逻辑执行
        import myapp.checks

4. 验证效果

运行Django自带的检查命令:

python manage.py check

如果你的检查逻辑触发了问题,终端会输出对应的警告或错误信息。

额外小贴士

  • 检查级别可选Debug、Info、Warning、Error、Critical,都从django.core.checks导入,按需选择即可。
  • 检查函数的app_configs参数会传入当前待检查的app配置列表,**kwargs留着兼容未来的参数扩展,建议不要删掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:57:19