django-profiles:登录后如何显示个人资料?

时间:2014-03-01 06:49:00

标签: python django

我是django和web开发的新手。我遇到了django-profiles app,所以我决定试一试。根据django-profiles的documentation/profiles/<username>网址将显示用户的个人资料。我无法理解的是如何将用户名从login.html发送到/profiles/<username>

这是我的login.html:

{% if not user.is_authenticated %}
<div id="content-main">

 <form method="post" action="/profiles/?username={{ user.username }}">{% csrf_token %}
  <div class="form-row">
    <label for="id_username">{% trans 'Username:' %}</label>
        <input type="text" name="username" id="id_username" />
  </div>
  <div class="form-row">
    <label for="id_password">{% trans 'Password:' %}</label>
        <input type="password" name="password" id="id_password" />
    <input type="hidden" name="this_is_the_login_form" value="1" />
  </div>
  <div class="submit-row">
    <input type="submit" value="{% trans 'Log in' %}" />
  </div>
</form>

<script type="text/javascript">
document.getElementById('id_username').focus()
</script>
</div>
{% endif %}

2 个答案:

答案 0 :(得分:1)

您需要定义自己的登录视图,并根据用户名

在最后重定向用户
def login(self, request):
    # check if login is correct and authenticate the user

    # redirect user
    return HttpResponseRedirect('/profiles/'+request.user.username)
    # OR better solution with reverse
    return HttpResponseRedirect(reverse('module.view_profile', args=(request.user.username,))) 

<小时/> 如果您使用默认登录视图(配备Django)并且您只想重定向到“静态”URL(没有用户名),您只需使用重定向URL定义设置LOGIN_REDIRECT_URL,即如果URL中未给出next参数,则使用此选项。

LOGIN_REDIRECT_URL = '/my_profile/'

答案 1 :(得分:0)

只需使用

HttpResponseRedirect('/profiles/'+request.user.username)

成功登录时在登录视图中