首页 > 解决方案 > Django:没有返回 HttpResponse 对象错误

问题描述

我正在尝试制作一个 Post 表单,但是发生了 HttPResponse。在我的代码中,有一个重定向方法,我认为它被认为是一个 httpresponse,不是吗?

我只是一个初学者,所以如果有人能找到一个简单的错误,我将不胜感激

from django.shortcuts import render,redirect
from .forms import DayCreateForm


def index(request):
    return render(request,'diary/day_list.html')


def add(request):

    form = DayCreateForm(request.POST or None)


    if request.method == 'POST'and form.is_valid():
        form.save()
        return redirect('diary:index')

        context ={
         'form':form
        }
        return render(request,'diary/day_form.html',context)

标签: djangopython-3.x

解决方案


如果请求的方法不是HTTP POST. 所以,试试下面的片段

from django.http.response import HttpResponse


def add(request):
    if request.method == 'POST':
        form = DayCreateForm(request.POST or None)
        if form.is_valid():
            form.save()
            return redirect('diary:index')
        else:
            return HttpResponse("form is not valid")
    else:
        form = DayCreateForm()
        context = {
            'form': form
        }
        return render(request, 'diary/day_form.html', context)

推荐阅读