Я хочу создать домашнюю страницу с заголовком, который запрашивает логин с именем пользователя/паролем и кнопкой входа в систему для входа в систему. В настоящее время, как я настроил свою страницу, нажатие логина отправит меня на страницу входа. Я хочу просто ввести информацию и нажать "Войти" для входа на домашнюю страницу моего сайта. Как я могу создать свои urls.py
и views.py
для входа на главную страницу?
У меня есть 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
, так как я не уверен, куда отправлять эти данные формы, если я хотел авторизовать логин на той же странице.
My 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