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
相关产品推荐
相关产品推荐

