首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django构建登录界面

Django构建登录界面
EN

Stack Overflow用户
提问于 2013-05-22 21:12:14
回答 1查看 1.3K关注 0票数 0

我是Django新手,需要一些关于login表单的帮助。这就是我所做的。

我的模板有index.html

代码语言:javascript
复制
<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有:

代码语言:javascript
复制
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有:

代码语言:javascript
复制
url(r'^/login/$', 'website.views.login')

不过,我还是不能登录。每当我单击HTML按钮执行"Sign In"操作时,都会抛出404错误。

需要帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-05-22 21:38:48

代码语言:javascript
复制
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})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16692724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档