下面的视图给出了使用POST方法时的错误。我正在尝试将模型数据加载到表单中,允许用户编辑,然后更新数据库。当我尝试保存更改时,我收到上述错误。
import numpy as np
x = range(10)
y = range(10)
ticks = [ctime(1), ctime(2), ctime(3)]
xtickpos = np.linspace(min(x), max(x), 3)
plt.plot(x,y)
plt.xticks(xtickpos, ticks)
这是来自终端的踪迹。
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
)
答案 0 :(得分:4)
如果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
)
这将导致表单再次显示给用户,如果您已正确编码模板,则会显示哪些字段无效。
答案 1 :(得分:0)
我有同样的错误,不管你信不信,是Python的缩进。
答案 2 :(得分:0)
您对Python文件缩进的错误。在遵循教程和/或复制粘贴代码时,请务必小心。缩进不正确会浪费很多宝贵的时间。
答案 3 :(得分:0)
你应该返回你正在渲染的文件而不是直接渲染。
def index(request):
return render(request, 'index.html')
def login(request):
return render(request,'login.html')
def logout(request):
return render(request,'index.html')