2014-03-01 73 views
0

我對django和web開發非常陌生。我遇到了django-profiles應用程序,所以我決定給它一個鏡頭。根據django-profiles的documentation/profiles/<username> url將顯示用戶的配置文件。我無法理解的是如何將用戶名從login.html發送到/profiles/<username>django-profiles:如何在登錄後顯示個人資料?

這裏是我的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 %} 

回答

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/' 
0

只需使用

HttpResponseRedirect('/profiles/'+request.user.username) 
在成功登錄登錄查看

相關問題