我是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 %}
答案 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)
成功登录时在登录视图中