我想创建一个头部,并要求使用用户名/密码和登录按钮进行登录。目前,我如何设置我的页面是按下登录会将我发送到登录页面。我只想输入信息并按“登录”登录我的网站的主页。我如何设计我的urls.py
和views.py
以在主页上执行登录?首页登录表单Django
我有一个base.html
这是我的主页的模板。在模板中,我做了一个login.html
局部视图:
<form action='/accounts/auth/' 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>
我有点糊涂了action
属性因为我不知道在哪里发送表单数据,如果我想授权在同一页面上登录。
我views.py
def login(request):
c = {}
c.update(csrf(request))
return render(request, 'login.html', c)
def auth_view(request):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username = username, password = password)
if user is not None:
auth.login(request, user)
return HttpResponseRedirect('/accounts/loggedin')
else:
return HttpResponseRedirect('/accounts/invalid')
我不知道在哪里HttpResponseRedirect
,以及如果记录中所有的主页上完成的。
也许我可以做一个render(request,SomePartialView.html)
而不是HttpResponseRedirect
。
这里是我的urls.py:
url(r'^$', 'photoblog.views.login'), #displays login.html
url(r'^accounts/auth/$', 'photoblog.views.auth_view'), #authorize login
我试过之后你的意见,但我不断收到 “HomeView” 没有定义。我尝试导入到网址,但没有奏效。我错过了什么? –
@MichelleGlauser - 导入应该是所有必要的。我可以从远处推荐的是检查错别字和不正确的路径。 –
如何更改登录的默认模板位置?我没有看到在哪里放template_name – shenk