Django创建新应用时出现NoReverseMatch错误,求解决方案
解决Django的NoReverseMatch错误
可能的原因及解决步骤
重启开发服务器:修改URL配置后Django不会自动重载规则,必须重启服务器才能让新配置生效,这是最容易忽略的关键点。
检查URL名称拼写:确保模板中的
{% url 'resultado_infos_gerais' %}和应用urls.py里的name="resultado_infos_gerais"完全一致,Django对URL名称的大小写敏感。验证应用注册与URL路径:
- 确认
settings.py的INSTALLED_APPS中'app_infos_gerais'和实际应用目录名称完全匹配,无拼写错误。 - 检查项目
urls.py的include('app_infos_gerais.urls')路径正确,应用目录下确实存在urls.py文件(注意文件名是urls.py而非url.py)。
- 确认
测试URL解析有效性:
打开终端执行python manage.py shell,输入以下代码测试:from django.urls import reverse reverse('resultado_infos_gerais')如果返回
'/infosgerais/',说明URL配置正常;若报错,说明URL规则未被正确加载,需重新检查前面的配置步骤。排查根路径渲染的模板:错误出现在访问
/时,说明此时渲染的模板(如导航模板、自定义404模板)包含了该URL标签。若URL解析测试正常,大概率是服务器未重启导致新规则未生效。
额外优化建议
当前你的infos_gerais视图返回纯文本响应,若要加载应用的HTML模板,需修改视图代码:
def infos_gerais(request): return render(request, 'app_infos_gerais/你的模板文件名.html')
确保模板文件放在应用的templates/app_infos_gerais目录下,Django才能正确识别路径。
内容的提问来源于stack exchange,提问作者Scarlet
相关产品推荐
相关产品推荐

