Html 为什么我的Django应用程序中的注销链接不起作用?

Html 为什么我的Django应用程序中的注销链接不起作用?,html,django,django-templates,django-views,Html,Django,Django Templates,Django Views,所以我正在尝试在我的Django应用程序中做一个注销链接。我设置了一个视图,让用户注销,然后将其重定向到一个模板paginaPrincinal.html,该模板有两个用于登录和注册的按钮 问题是由于某种原因,我在index.html中创建的链接href没有出现 我的观点 def login_view(request): if request.method == 'POST': form = AuthenticationForm(data=request.POST)

所以我正在尝试在我的Django应用程序中做一个注销链接。我设置了一个视图,让用户注销,然后将其重定向到一个模板paginaPrincinal.html,该模板有两个用于登录和注册的按钮

问题是由于某种原因,我在index.html中创建的链接href没有出现

我的观点

def login_view(request):
   if request.method == 'POST':
      form = AuthenticationForm(data=request.POST) 
      if form.is_valid():
         user = form.get_user()
         login(request, user) 
         return redirect('index')
   else:
      form = AuthenticationForm()
   return render(request, 'registration/login.html', {'form': form})

def logout_view(request):
   logout(request)
   return redirect('paginaPrincipal')
我的URL.py

 path('principal/', views.intro, name='pagina_principal'),
 path('registro/', views.registro_usuario, name='registro_usuario'),
 path('login/', views.login_view, name="login"),
 path('logout/', views.logout_view, name="logout"),
 path('',views.index, name ='index'),
index.html

{%block contenido%}
    {%if user.u经过身份验证%}
  • 你好,{{user.username}
  • {%endif%}

{%endblock%}
传递到
重定向的字符串应该是url路由名称。问题是
'paginaPrincipal'!='pagina_principal'

def logout_view(request):
   logout(request)
   return redirect('pagina_principal')

这应该可以解决问题。

传递到
重定向中的字符串应该是url路由名称。问题是
'paginaPrincipal'!='pagina_principal'

def logout_view(request):
   logout(request)
   return redirect('pagina_principal')

这应该可以解决问题。

您正在重定向到
“paginaPrincipal”
,但您已经定义了
“pagina\u principal”
。您必须更改查看功能

def logout_view(request):
   logout(request)
   return redirect('pagina_principal')

您正在重定向到
“paginaPrincipal”
,但您已经定义了
“pagina\u principal”
。您必须更改查看功能

def logout_view(request):
   logout(request)
   return redirect('pagina_principal')

NoReverseMatch意味着您必须在url.py中设置app_name,如

app_name= "app_name"
在模板中

<a href="{% url 'app_name:logout' %}"></a>


它应该可以工作,NoReverseMatch意味着您必须在url.py中设置app_name

app_name= "app_name"
在模板中

<a href="{% url 'app_name:logout' %}"></a>

应该行得通