Добрый день! Версия Django = 1.11 После ввода неправильного пароля перекидывает на пустую страницу без какого-либо текста. В задумке, чтобы после ввода неправильного пароля пользователь переходил на disable_account view
def disable_account(request):
return render(request, 'registration/disable_account.html', {})
def user_view(request):
return render(request, 'registration/user_view.html', {})
urls
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),
url(r'^post/new/$', views.post_new, name='post_new'),
url(r'^post/(?P<pk>\d+)/edit/$', views.post_edit, name='post_edit'),
url(r'^login/$', views.log, name='log'),
url(r'^disable_account/$', views.disable_account, name='disable_account'),
url(r'^logout/$', views.logged, name='logged'),
base.html
{% load staticfiles %}
<html>
<head>
<title>Django</title>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
<link href='//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="{% static 'css/blog.css' %}">
</head>
<body>
<div class="page-header">
<h1><a href="/">Django Test</a></h1>
{% if user.is_authenticated %}
<a href="{% url 'post_new' %}" class="top-menu"><span class="glyphicon glyphicon-plus"></span></a>
{% endif %}
{% extends "blog/base.html" %}
{% block title %}{% endblock %}
<div align = "right">
<span class="user">
{% if request.user.is_authenticated %}
Привет! {{ request.user.first_name }}, <a href="{% url "logged" %}">Выход</a>
{% else %}
<a href="{% url "log" %}">Вход</a>
{% endif %}
</span>
</div>
</div>
{%block log%}{%endblock%}
<div class="content container">
<div class="row">
<div class="col-md-8">
{% block content %}
{% endblock %}
</div>
</div>
</div>
</body>
</html>
disable_account.html
{% extends "blog/base.html" %}
{% block title %}Аккаунт не найдет{% endblock %}
{% block disable %}
<h1>Аккаунт не найдет</h1>
<p>Возможно вы не зарегестрированны или вы даун.
Вы можете попробывать <a href="{% url "log" %}">войти</a> снова.</p>
{%endblock%}
forms.py
class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
Все что стоит перед disable_account view
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
def post_new(request):
if request.method == "POST":
form = PostForm(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect('post_detail', pk=post.pk)
else:
form = PostForm()
return render(request, 'blog/post_edit.html', {'form': form})
def post_edit(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == "POST":
form = PostForm(request.POST, instance=post)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect('post_detail', pk=post.pk)
else:
form = PostForm(instance=post)
return render(request, 'blog/post_edit.html', {'form': form})
def log(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
#Создается экземпляр формы с отправленными данными
form = LoginForm(request.POST)
#Проверяется валидность формы. Если форма невалидна, то в шаблоне отображаются ошибки формы
if form.is_valid():
cd = form.cleaned_data
'''
Если отправленные данные являются валидными, мы ищем пользователя в базе данных
с помощью метода authenticate(). Этот метод принимает username и password и возвращает объект User.
Если пользователь не прошел аутентификацию, возвращается необработанный HttpResponse,
отображающийся на экране.
'''
user = authenticate(request, username=username, password=password)
if user is not None:
'''
Если пользователь успешно прошел аутентификацию, мы проверяем,
активен ли он с помощью атрибуту is_active. Если пользователь не активен,
возвращается HttpResponse, отображающийся на экране.
'''
if user.is_active:
'''
Если пользователь активен, он входит на сайт. Мы установлмваем сессию,
вызвав метод login() и возвращаем сообщение об успешном выполнении.
'''
login(request, user)
# Redirect to a success page.
return HttpResponseRedirect('/')
else:
# Return an 'invalid login' error message.
return HttpResponseRedirect('/disable_account/')
else:
return HttpResponseRedirect('/disable_account/')
else:
form = LoginForm()
return render(request, 'registration/login.html', {'form': form})
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости