DJANGO - local variable 'comment_form' referenced before assignment

Я пытаюсь создать форму, чтобы можно было оставлять комментарии под постами, все делаю по книге, но у меня вылезает вот такая ошибка - local variable 'comment_form' referenced before assignment введите сюда описание изображения

Учусь по книге Антонио Меле Django 2 в примерах вот мой views.py, в котором пишет, что есть ошибка

    from django.shortcuts import render, get_object_or_404 
    from .models import Post 
    from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger  
    from .models import Post, Comment 
    from .forms import EmailPostForm, CommentForm
    
    def post_list(request):  
        object_list = Post.published.all()  
        paginator = Paginator(object_list, 3)  # 3 поста на каждой странице  
        page = request.GET.get('page')  
        try:  
            posts = paginator.page(page)  
        except PageNotAnInteger:  
            # Если страница не является целым числом, поставим первую страницу  
            posts = paginator.page(1)  
        except EmptyPage:  
            # Если страница больше максимальной, доставить последнюю страницу результатов  
            posts = paginator.page(paginator.num_pages)  
        return render(request,  
                  'blog/post/list.html',  
              {'page': page,  
               'posts': posts})
    
    
    
    def post_detail(request, year, month, day, post):  
        post = get_object_or_404(Post, slug=post,  
                       status='published',  
                       publish__year=year,  
                       publish__month=month,  
                       publish__day=day)  
          
        # Список активных комментариев к этой записи  
        comments = post.comments.filter(active=True)  
        new_comment = None  
        if request.method == 'POST':  
            # Комментарий был опубликован
            comment_form = CommentForm(data=request.POST)  
        if comment_form.is_valid():  
                # Создайте объект Comment, но пока не сохраняйте в базу данных
            new_comment = comment_form.save(commit=False)  
                # Назначить текущий пост комментарию
            new_comment.post = post  
                # Сохранить комментарий в базе данных 
            new_comment.save()  
        else:  
            comment_form = CommentForm()
            return render(request,'blog/post/detail.html',{'post': post,'comments': comments,'new_comment': new_comment,'comment_form': comment_form})
    
    
    
    
    from django.views.generic import ListView
    
    class PostListView(ListView):  
        queryset = Post.published.all()  
        context_object_name = 'posts'  
        paginate_by = 3  
        template_name = 'blog/post/list.html'
    
    from .forms import EmailPostForm  
    
      
    from django.core.mail import send_mail 
    
    def post_share(request, post_id):   
        # Получить пост по id   
        post = get_object_or_404(Post, id=post_id, status='published')   
        sent = False   
        if request.method == 'POST':   
            # Форма была отправлена   
            form = EmailPostForm(request.POST)   
            if form.is_valid():   
                # Поля формы прошли проверку   
                cd = form.cleaned_data   
                post_url = request.build_absolute_uri(post.get_absolute_url())   
                subject = '{} ({}) recommends you reading " {}"'.format(cd['name'], cd['email'], post.title)   
                message = 'Read "{}" at {}\n\n{}\'s comments: {}'.format(post.title, post_url, cd['name'], cd['comments'])   
                send_mail(subject, message, '[email protected]', [cd['to']])   
                sent = True   
        else:   
            form = EmailPostForm()   
        return render(request, 'blog/post/share.html', {'post': post,   
                                'form': form,   
                                'sent': sent})```

**Я понимаю, что мне нужно передать в условие if comment_form.is_valid() данные из post запроса, но как сделать это правильно ума не приложу(
Версия django 2.1.5
Благодарю за помощь заранее
**

Ответы (1 шт):

Автор решения: 5c0rp

У вас не хватает отступа

...
if request.method == 'POST':  
    # Комментарий был опубликован
    comment_form = CommentForm(data=request.POST)  
    if comment_form.is_valid():  
            # Создайте объект Comment, но пока не сохраняйте в базу данных
        new_comment = comment_form.save(commit=False)  
            # Назначить текущий пост комментарию
        new_comment.post = post  
            # Сохранить комментарий в базе данных 
        new_comment.save()  
else:
    ...
→ Ссылка