python 视图对象_python-视图未返回HttpResponse对象.它返回None

下面的视图给我使用POST方法时的错误.我正在尝试将模型数据加载到表单中,允许用户进行编辑,然后更新数据库.当我尝试保存更改时,出现上述错误.

def edit(request, row_id):

rating = get_object_or_404(Rating, pk=row_id)

context = {'form': rating}

if request.method == "POST":

form = RatingForm(request.POST)

if form.is_valid():

form.save()

return redirect('home.html')

else:

return render(

request,

'ratings/entry_def.html',

context

)

这是来自终端的跟踪.

[15/Apr/2016 22:44:11] "GET / HTTP/1.1" 200 1554

[15/Apr/2016 22:44:12] "GET /rating/edit/1/ HTTP/1.1" 200 919

Internal Server Error: /rating/edit/1/

Traceback (most recent call last):

File "/Users/michelecollender/ENVlag/lib/python2.7/site-packages/django/core/handlers/base.py", line 158, in get_response

% (callback.__module__, view_name))

ValueError: The view ratings.views.edit didn't return an HttpResponse object. It returned None instead.

解决方法:

如果要重定向,则为form.is_valid(),但该表单无效吗?在这种情况下没有执行任何代码?没有代码.当函数未明确返回值时,期望返回值的调用方将被赋予None.因此,错误.

您可以尝试这样的事情:

def edit(request, row_id):

rating = get_object_or_404(Rating, pk=row_id)

context = {'form': rating}

if request.method == "POST":

form = RatingForm(request.POST)

if form.is_valid():

form.save()

return redirect('home.html')

else :

return render(request, 'ratings/entry_def.html',

{'form': form})

else:

return render(

request,

'ratings/entry_def.html',

context

)

这将导致该表单再次显示给用户,并且如果您已经正确编码了模板,它将显示哪些字段无效.

标签:python-2-7,django-views,python,django

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值