如何在Django中实现简单的登录页面?

时间:2015-02-21 14:49:41

标签: python django

基本上,我已经创建了名为html的登录页面。我将解释这个问题。

我所拥有的网站有当前标签:主页,个人资料,排行榜和成员。

但是,对于成员选项卡,管理员可以添加和编辑成员详细信息。目前,任何人都可以编辑它,这不太现实 - 它应该只适用于管理员。在排行榜选项卡之后,我创建了一个具有登录页面的Admin选项卡,但是当我点击" login"输入用户名和密码后,它没有做任何事情(因为我不知道如何)。

当管理员输入他们的详细信息时,他们应该被定向到我已经创建的成员页面。

基本上,如何在登录后将管理员重定向到该成员。登录按钮不执行任何操作。我会告诉你我有什么......

Leaderboard.html(管理员之前的页面)

    <li><a href="{% url 'index' %}">Home</a></li>
    <li><a href="{% url 'profile' %}">Members Profile</a></li>
    <li><a href="{% url 'leaderboard' %}">Leaderboard</a></li>
    <li><a href="{% url 'admin' %}">Admin</a></li>
    <li><a href="{% url 'all_members' %}">Members</a></li>

的login.html

<form action='' method='POST'> {% csrf_token %}
    <div >
        <label for='username'> Username </label>
        <input type='text' name='Username' id='username'>
        <label for='password'>Password </label>
        <input type='password' name='Password' id='password'>
        <input type='submit' value='login'>
    </div>
</form>

Views.py

def login(request):
    context = RequestContext(request)
    return render_to_response("templates/login.html", context)    


def all_members(request): <-- Login should go to this view. 
    return render(request, 'templates/members.html', 
{'members': Member.objects.all()})

Urls.py

url(r'^$', views.index, name='index'),
url(r'profile', views.profile, name='profile'),
url(r'leaderboard', views.leaderboard, name='leaderboard'),
url(r'login', views.login, name='login'),
url(r'^(?P<member_id>\d+)/$', views.edit_member, name='edit_member'),
url(r'^add/$', views.add_member, name='add_member'),
url(r'members', views.all_members, name='all_members'),

1 个答案:

答案 0 :(得分:0)

如果您不检查用户名和密码的有效性,只需将您的登录视图写为:

from django.shortcuts import redirect

def login(request):
    if request.method == 'POST':
        return redirect('all_members')
    else:
        context = RequestContext(request)
        return render_to_response("templates/login.html", context)    

尽管如此,这是一个非常奇怪的用例,但它应该适用于您的场景。