我的项目模板中有以下链接:
<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(r'^$',views.user_login,name='user_login'),
,应用视图是:
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', {})
但是一旦链接点击,就会返回以下django错误:
NoReverseMatch at /login/
'login_app' is not a registered namespace
这个命名空间是否应该在项目url文件中注册?
答案 0 :(得分:1)
答案 1 :(得分:0)
右键! 所以正确的方法是:
<强> HTML 强>:
<li><a id="toggleLogin" href= "{% url 'login_app:user_login' %}" onclick="toggleLogin();"
项目网址:
url(r'^login/',include('login_app.urls',namespace='login_app')),
和应用网址:
url(r'^$',views.user_login,name='user_login'),
虽然它导致了关于内联javascript函数执行的另一个问题。但我会为此创建一个新问题。 感谢。