2017-09-12 3 views
0

내 프로젝트 템플릿에서 다음 링크 한 : URL장고 NoReverseMatch 아닌 등록 된 네임 스페이스

<li><a id="toggleLogin" href= "{% url 'login' %}" onclick="toggleLogin();" ><span>Login</span></a></li> <!-- login app 
--> 

프로젝트입니다 :

url(r'^login/',loginViews.user_login,name='login'), 

URL이 응용 프로그램 :

url(r'^$',views.user_login,name='user_login'), 

및 ap 주름 성형술 보기은 다음과 같습니다

def user_login(request): 
    """User at login view """ 
    # 
    if request.method == 'POST': 
     # First get the username and password supplied 
     username = request.POST.get('username') 
     password = request.POST.get('password') 
     # Django's built-in authentication function: 
     user = authenticate(username=username, password=password) 
     # If we have a user 
     if user: 
      #Check it the account is active 
      if user.is_active: 
       # Log the user in. 
       login(request,user) 
       # Send the user back to some page. 
       # In this case their homepage. 
       return HttpResponseRedirect(reverse('index')) 
      else: 
       # If account is not active: 
       return HttpResponse("Your account is not active.") 
     else: 
      print("Someone tried to login and failed.") 
      print("They used username: {} and password: {}".format(username,password)) 
      return HttpResponse("Invalid login details supplied.") 
    else: 
     #Nothing has been provided for username or password. 
     return render(request, 'login.html', {}) 

그러나 한 번

클릭 한, 그것은 다음과 같은 장고 오류를 반환 링크 :

NoReverseMatch at /login/ 
'login_app' is not a registered namespace 

이 네임 스페이스가뿐만 아니라 프로젝트 URL 파일에 등록되어야한다?

답변

0

오른쪽! 때문에 적절한 방법은 다음과 같습니다

HTML :

<li><a id="toggleLogin" href= "{% url 'login_app:user_login' %}" onclick="toggleLogin();" 

프로젝트 URL :

url(r'^login/',include('login_app.urls',namespace='login_app')), 

및 응용 프로그램 URL :

url(r'^$',views.user_login,name='user_login'), 

인라인 자바 스크립트 기능의 실행과 관련하여 또 다른 질문이 제기되었지만. 그러나 나는 그것에 대한 새로운 질문을 만들 것이다. 감사합니다. .

1

"응용 프로그램 URL"을 전혀 사용하지 않았습니다. 프로젝트 URL에 URL (login)을 완전히 정의 했으므로 namespace이 생성되지 않습니다. 일반적으로 앱 URL에 연결하려면 include을 사용해야하지만 그렇게하지는 않습니다.

관련 문제