0
我有下面的错误,我不知道问题是什么。 ValueError:视图bookmarks.views.bookmark_save_page未返回HttpResponse对象。它返回None而不是。提交表单时视图没有返回HttpResponse对象
这里是bookmarks.views.bookmark_save_page的代码:
def bookmark_save_page(request):
if request.method == 'POST':
form = BookmarkSaveForm(request.POST)
if form.is_valid():
link, dummy = Link.objects.get_or_create(
url = form.cleaned_data['url']
)
bookmark, created = Bookmark.objects.get_or_create(
user=request.user,
link = link
)
bookmark.title = form.cleaned_data['title']
if not created:
bookmark.tag_set.clear()
tag_names = form.cleaned_data['tags'].split()
for tag_names in tag_names :
tag, dummy = Tag.objects.get_or_create(name=tag_names)
bookmark.tag_set.add(tag)
bookmark.save()
return HttpResponseRedirect(
'/user/%s/' %request.user.username
)
else:
form = BookmarkSaveForm()
variables = RequestContext(request,{
'form' : form
})
return render_to_response('bookmark_save.html', variables)
'bookmark_save.html' 的代码:
{% extends "base.html" %}
{% block title %}save your bookmark{% endblock %}
{% block head %}save your bookmark{% endblock %}
{% block content %}
<form method="post" action=".">
{{ form.as_p }}
<input type="submit" value="save" />
</form>
{% endblock %}
问题是什么?我错过了什么?
我有一个另一个错误这一次。 UnboundLocalError at/save /局部变量'变量'在赋值之前被引用,例外类型:\t UnboundLocalError,异常值:\t 赋值之前引用的局部变量'变量', – 2014-09-28 07:01:50
我修改的唯一东西是最后一次返回到与最初如果你说的话。 – 2014-09-28 07:03:54
这是因为当请求方法不是'POST'时,变量'variables'将永远不会被定义,但会在return语句中使用。你可以在'if'语句之前通过初始化'variables'到'{}'来解决这个问题。尽管你可能想要考虑像Khalid所建议的那样重构你的代码。 – RevolutionTech 2014-09-28 07:15:46