【发布时间】:2021-08-04 14:31:33
【问题描述】:
我在提交表单时收到以下错误。
ValueError at /edit_entry/hi/
The view encyclopedia.views.edit_entry didn't return an HttpResponse object. It returned None instead.
这里是触发错误的views.py。
def edit_entry(request, title):
if request.method == "POST":
form = NewEditEntryForm(request.POST)
if form.is_valid():
title = form.cleaned_data["title"]
content = form.cleaned_data["content"]
util.save_entry(title, content)
return HttpResponseRedirect("/wiki/" + title)
else:
form = NewEditEntryForm()
return render(request, "encyclopedia/edit_entry.html",{
"form": NewEditEntryForm(),
"title": title,
"content": util.get_entry(title)
})
问题是什么,我该如何解决?
(我还需要使用现有数据预填充表单的帮助。我尝试使用初始值,但没有奏效。使用现有数据预填充表单的最佳方法是什么?)
util.save_entry
def save_entry(title, content):
"""
Saves an encyclopedia entry, given its title and Markdown
content. If an existing entry with the same title already exists,
it is replaced.
"""
filename = f"entries/{title}.md"
if default_storage.exists(filename):
default_storage.delete(filename)
default_storage.save(filename, ContentFile(content))
【问题讨论】:
-
当表单无效时会发生什么?
-
@Sayse,我希望它再次显示表单供用户填写。我应该使用 form.errors 吗?
标签: python django django-views django-forms cs50