How can I match the value? next = / nextpage /, when do I decorate a view in django with @login_required? It does not work on the "standard path" (in url.py using regex)! Why doesn't it work on the standard path?
in urls.py:
(r'^login/$', 'foo.nb.views.signup'),
in views.py:
@login_required
def userpage(request):
return HttpResponse('logged in -> ON USERPAGE')
views.py again:
def signup(request):
""" Logs a user in """
if request.method=="POST" and request.POST['username'] and request.POST['password']:
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect(request.GET['next'])
else:
pass
else:
pass
return render_to_response('NBlogin.html')
view.userpage, , url , /login/? next =/oldpage/, , , , (, ), , ( , )
edit: Django 1.2: ( GET: ) , ...
edit2: request.GET ['next'] :
Key 'next' not found in <QueryDict: {}>
Edit3:
:
def signup(request):
""" Logs a user in """
if request.method=="GET":
try:
next = request.GET['next']
except:
return render_to_response('NBlogin.html')
return render_to_response('NBlogin.html',{'next' : next})
if request.method=="POST" and request.POST['username'] and request.POST['password']:
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect(request.POST['next'])
else:
pass
else:
pass
return render_to_response('NBlogin.html')
, !:
<form action="/login/" method="post">
<p>Username:<input type="text" name="username"></p>
<p>Password:<input type="password" name="password">
<input type="hidden" name="next" value="{{next}}">
<input type="submit" value="login"></p>
</form>