我正在开发一个 Django 应用程序。我花了大约 40 到 50 个小时研究 Django,并且我正在准备申请!
但是,我开始遇到“更严重”的错误,有些人可能会这样称呼它们,因为我无法从堆栈跟踪中准确找出真正的问题是什么。
基本上,我单击页面上的链接,然后弹出此错误:
请求方法:GET 请求 URL:/accounts/profile/ Django 版本:1.5.1 异常类型:ValueError 异常值:
*视图 userprofile.views.user_profile 没有返回 HttpResponse 对象。*
这使我相信错误出现在我的视图文件中,除了我正在逐行遵循教程,并且我被引导相信错误可能在于 forms.py 用于创建 HttpResponse 对象的方式。
简而言之,代码是,
form = UserProfileForm(request.POST, instance=request.user.profile)
...
args = {}
args.update(csrf(request)) // security token
args['form'] = form
return render_to_response('profile.html', args)
profile.html 也绝对没问题,我对此进行了测试,我基本上是从 login.html 页面调用它,在该页面中显示有效的用户登录。
非常感谢您的帮助所以,我通常不问问题,但我已经被困在这个问题上 5-6 个开发小时。尽量不要嘲笑我不理解这个可能简单但隐藏的初学者错误:)
另外,如果你能说明你是如何解决这个错误的,我更愿意在回复中说明你是如何解决这个错误的,特别是说明我的想法是如何以及根本误解在哪里。
在您的回答中,仅参考文档的特定实例,因为我已经进行了大量搜索,但也许它并没有完全缩小到我的问题所在:D
再次感谢,
詹姆士
评论一:教程
这是我所指的教程。我一直在识别错误,因为我拥有所有代码并且一切正常,直到我尝试单击超链接。我对错误的来源没有经验。
第二条评论:相关代码
用户配置文件/views.py
def user_profile(request):
if request.method=='POST':
form = UserProfileForm(request.POST, instance=request.user.profile)
if form.is_valid():
form.save()
return HttpResponseRedirect('/accounts/loggedin')
else:
user = request.user
profile = user.profile
form = UserProfileForm(instance=profile)
args = {}
args.update(csrf(request)) // security token
args['form'] = form
return render_to_response('profile.html', args)
myapp urls.py , 用户配置文件 urls.py
(r'^accounts/', include ('userprofile.urls')),
...
url(r'^profile/$', 'userprofile.views.user_profile'),