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

如何在Django中创建正确上下文?代码TabError缩进错误求解

嘿,我来帮你搞定这两个问题!

先解决TabError缩进问题

这个错误是Python最常见的小坑之一——你的代码里同时混用了制表符(Tab)和空格来缩进,Python对缩进的一致性要求特别严格,绝对不能两者混着用。

解决方法很简单:

  • 统一缩进风格:Python官方推荐用4个空格作为缩进标准,你可以把代码里所有的Tab都替换成4个空格,或者反过来(但更推荐空格)。
  • 用编辑器自动修复:几乎所有主流代码编辑器都有一键转换缩进的功能:
    • VS Code:按下Ctrl+Shift+P(Mac是Cmd+Shift+P),输入「Convert Indentation to Spaces」就能自动把Tab转成空格;也可以在设置里开启「将制表符转换为空格」,以后输入Tab直接变成空格。
    • PyCharm:按下Ctrl+Alt+L(Mac是Cmd+Opt+L)一键格式化代码,它会自动把缩进统一成你设置的风格(默认就是4空格)。

修正后的代码应该是这样的(确保所有缩进都是4个空格):

from django.shortcuts import render

def index(request):
    context = {
        'title': 'test'
    }
    return render(request, 'index.html', context)
确认Django上下文的正确创建方式

其实你写的上下文代码是完全正确的!Django的render函数第三个参数就是上下文字典,你把title变量放进字典里,模板index.html里就可以用{{ title }}来调用这个变量了。

给你补充个小技巧:如果视图里的变量很多,你也可以用locals()来简化上下文的写法,它会把当前函数里的所有局部变量自动打包成字典传到模板里:

def index(request):
    title = 'test'
    # 其他变量也可以直接加在这里
    return render(request, 'index.html', locals())

不过还是更推荐明确写出上下文字典,这样代码可读性更高,也不会不小心把不必要的变量传到模板里。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:27:53