как я могу решить Представление blog.views.post_detail не вернуло объект HttpResponse. Вместо этого он вернул None - PullRequest
0 голосов
/ 01 августа 2020
 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():
            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 ,})

, пожалуйста, может ли кто-нибудь помочь мне решить эту ошибку: представление blog.views.post_detail не вернуло объект HttpResponse. Вместо этого он вернул None, я попытался проверить, но все еще не могу его решить

Ответы [ 2 ]

1 голос
/ 01 августа 2020

Проблема в вашем отступе для return. Он должен соответствовать первому if:

 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():
            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 ,})

Если, конечно, эта проблема только в вашем вопросе, а не в вашем фактическом коде. Но это будет первое, что нужно проверить / исправить.

0 голосов
/ 01 августа 2020
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():
            new_comment = comment_form.save(commit=False)
            new_comment.post = post
            new_comment.save()
            return HttpResponseRedirect('/success/')
    else:
        comment_form = CommentForm()
    return render (request, 
                    'blog/post/detail.html', 
                    {'post':post,
                    'comments':comments,
                    'new_comment':new_comment, 
                    'comment_form': comment_form ,})

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...