我是Django新手,需要一些关于login表单的帮助。这就是我所做的。
我的模板有index.html
<form class="form-signin" action="/login" method="post">
{% csrf_token %}
<h2 class="form-signin-heading">Please sign in</h2>
<input type="text" class="input-block-level" placeholder="Email address" name="email">
<input type="password" class="input-block-level" placeholder="Password" name="password">
<label class="checkbox">
<input type="checkbox" value="remember-me"> Remember me
</label>
<button class="btn btn-large btn-primary" type="submit">Sign in</button>
</form>以{{user.username}}身份使用home.html (仅此行用于测试)(&S)
我的views.py有:
def login(request):
s_email = request.POST["email"]
s_password = request.POST["password"]
global user
user = authenticate(email=s_email, password=s_password)
if user is not None:
if user.is_active:
login(request, user)
return render_to_response('home.html', dict(user=user), RequestContext(request))
else:
return render_to_response('index.html', {}, RequestContext(request))我的urls.py有:
url(r'^/login/$', 'website.views.login')不过,我还是不能登录。每当我单击HTML按钮执行"Sign In"操作时,都会抛出404错误。
需要帮助。
发布于 2013-05-22 21:38:48
from django.contrib.auth import authenticate, login
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render
def home(request):
login_form = LoginForm(request.POST or None)
registration_form = RegistrationForm(request.POST or None)
if request.method == 'POST':
action = request.POST.get('action')
if action == 'login':
if login_form.is_valid():
user = authenticate(email=login_form.cleaned_data.get('email'),
password=login_form.cleaned_data.get('password'))
login(request, user)
return HttpResponseRedirect(reverse('some_url'))
else:
if registration_form.is_valid():
registration_form.save()
# do whatever else
return render('some-template.html', {'login_form': login_form,
'registration_form': registration_form})https://stackoverflow.com/questions/16692724
复制相似问题