如何在Django应用模板中链接根urls.py定义的首页(登录页)
Django模板中正确调用根URLconf里的登录链接方法
你的代码写法本身是可行的,只要满足以下前提条件,就能正确生成指向首页(登录页)的链接:
确认根URL配置有效:根
urls.py里的path('', views.login, name='login')要保证:views.login是存在且可正常响应的视图函数(如果用Django自带登录视图,需正确导入from django.contrib.auth.views import LoginView,并写成path('', LoginView.as_view(), name='login'))- 该
name='login'的URL配置没有和其他应用的URL命名冲突
模板渲染正常:确保该模板是通过Django视图渲染输出的,不是直接打开静态HTML文件(直接打开的话模板标签不会被解析)
如果遇到NoReverseMatch错误,大概率是命名冲突导致的,解决方法是给根URLconf添加命名空间:
- 修改根
urls.py,添加命名空间标识:
app_name = 'core' urlpatterns = [ path('admin/', admin.site.urls), path('', views.login, name='login'), ]
- 模板中调用时带上命名空间:
<small style="margin-top: 5px;">To login <a href="{% url 'core:login' %}" class="login">Click Here</a></small>
你也可以在Django shell中测试链接生成是否正常,执行python manage.py shell后输入:
from django.urls import reverse reverse('login') # 或带命名空间的reverse('core:login')
如果能返回'/',说明URL配置没问题,模板里的调用也会正常生效。
内容的提问来源于stack exchange,提问作者noob87
相关产品推荐
相关产品推荐

