Skip to main content
 首页 » 编程设计

python之Django View 不返回 httpresponse

2025年05月04日23开发

我有以下代码来处理一个简单的表单,我的观点是没有发回 http 响应。

我不知道我的代码有什么问题..

def novo_material(request): 
current_page='material' 
if request.method =='POST': 
    form = SystemInventoryUpdate(request.POST) 
    if form.is_valid(): 
        name=form.cleaned_data['name'] 
        qty=form.cleaned_data['qty'] 
        unit=form.cleaned_data['unit'] 
        t= NewMaterial(name=name,qty=qty,unit=unit) 
        t.save() 
        return HttpResponseRedirect(reverse('material')) 
else: 
    form=NewMaterial() 
    return render(request,'novo_material.html',{'form':form}) 

它引发了这个错误:

The view dashboard.views.novo_material didn't return an HttpResponse object. It returned None instead. 

请您参考如下方法:

您处理请求是否为 POST 的情况,但您没有处理表单无效 的条件(内部 if-else 条件)。

 if form.is_valid(): 
        name=form.cleaned_data['name'] 
        qty=form.cleaned_data['qty'] 
        unit=form.cleaned_data['unit'] 
        t= NewMaterial(name=name,qty=qty,unit=unit) 
        t.save() 
        return HttpResponseRedirect(reverse('material')) 
 else: 
    # NEED HANDLE THIS CASE WHEN FORM ISN'T VALID 
    # DISPLAY ERRORS/REMINDERS ON THE SAME PAGE, ALARM USER THE INPUT 
    # ARE INVLID