Не выводит шаблон django

314
20 февраля 2018, 05:44

Добрый день! Версия 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%}

Answer 1

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})
READ ALSO
Отправка и Проверка ответа из БД

Отправка и Проверка ответа из БД

Привет, я не силён в php помогите исправить и довести код до ума

253
html. Проблемы с фоновым изображением [дубликат]

html. Проблемы с фоновым изображением [дубликат]

На данный вопрос уже ответили:

294
Input type file. Как работает?

Input type file. Как работает?

На сайте потребовалось реализовать загрузку изображений, да так, чтобы было превью и прочееНачал разбираться как это сделать и понял, что...

322
Как заполнить формы на сайте текстовыми данными, которые у меня в программе, но не делать запрос

Как заполнить формы на сайте текстовыми данными, которые у меня в программе, но не делать запрос

Имеются текстовые данные на компеМне нужно вбить их в поля на сайте, просто написать их в эти поля, без сохранения , т

254