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

Django项目'urlpatterns'赋值报cannot assign to literal语法错误求助

Django路由配置cannot assign to literal错误排查与解决

*cannot assign to literal属于Python基础语法错误,触发原因是代码中尝试给字符串、数字、列表字面量这类固定值执行赋值操作,和Django路由逻辑本身无关,可按以下步骤排查:

排查步骤

  • 检查urlpatterns变量的书写格式:最常见的错误是给变量名加了单/双引号,变成字符串字面量,比如写成'urlpatterns' = [...],字符串不能作为赋值语句的左值,直接去掉引号即可。
  • 检查赋值语句顺序:不要将赋值的左右值写反,比如[...] = urlpatterns,列表字面量不可被赋值,需要调整为变量在左、列表值在右的格式。
  • 检查上一行代码的语法完整性:如果上一行路由配置漏写了闭合括号、逗号,会导致Python解析器将当前行的urlpatterns识别为上一行代码的一部分,误判为给字面量赋值。重点检查上一行path()、re_path()的括号是否完全闭合,末尾是否漏写逗号。
  • 检查列表内部是否有错误赋值:如果是在urlpatterns列表内部编写路由项时,错误给path()对象执行赋值操作,也会触发该错误。

代码示例

错误写法

# 错误1:变量名加引号
'urlpatterns' = [
    path('admin/', admin.site.urls),
]

# 错误2:赋值顺序写反
[
    path('admin/', admin.site.urls),
] = urlpatterns

正确写法

urlpatterns = [
    path('admin/', admin.site.urls),
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:06:10