Django 3.2使用Django-Verify-Email修改LOGIN_URL触发NoReverseMatch错误求解
错误根因
报错核心原因是路由名称不匹配:你在根urls.py中给首页路由设置的name属性是mainpage,不存在名为index的路由,Django执行反向解析时找不到对应路由就会抛出该异常。
解决方案
- 方案1:直接配置路径
在项目settings.py中直接将LOGIN_URL设置为绝对路径'/'即可,不需要走反向解析逻辑,会直接匹配你配置的根路径首页路由。 - 方案2:使用正确的路由名称配置
如果你希望用反向解析的方式配置,将LOGIN_URL设置为'mainpage',和你urls.py中定义的路由name保持一致即可。
配置验证
改完配置后可以进入Django shell执行如下命令验证配置是否正确:
from django.urls import reverse print(reverse('mainpage'))
如果输出结果为'/',就代表配置正常,不会再抛出反向解析错误。
内容的提问来源于stack exchange,提问作者Omni Master
相关产品推荐
相关产品推荐

