首先,我知道错误意味着什么,我只是对配置感到困惑。
我收到错误:
views.Registration didn't return an HttpResponse object
问题是当我访问localhost/Register
时,我收到了上述错误。
问:如果我希望localhost/Register
在RegistrationForm()
register.html
内加载render()
模板时显示表单(在底部)访问/Register
时我怎么做?我是否需要创建另一个我目前指定的/NewUser
视图?我的想法是render()
会在查看template
/Register
(包含其中的表单)
代码: 视图:
def Registration(request):
RegForm = RegistrationForm(request.POST or None)
if request.method == 'POST':
if RegForm.is_valid():
clearUserName = RegForm.cleaned_data['userNm']
clearPass = RegForm.cleaned_data['userPass']
RegForm.save()
try:
return HttpResponseRedirect('/NewUser/?user=' + clearUserName)
except:
raise ValidationError('Invalid Request', code='300') ## [ TODO ]: add a custom error page here.
else:
RegForm = RegistrationForm()
return render(request, 'VA/reuse/register.html', {
'form': RegForm
})
答案 0 :(得分:1)
如果请求是'GET'而不是'POST',你需要渲染一些东西:ie。
def Registration(request):
RegForm = RegistrationForm(request.POST or None)
if request.method == 'POST':
if RegForm.is_valid():
clearUserName = RegForm.cleaned_data['userNm']
clearPass = RegForm.cleaned_data['userPass']
RegForm.save()
try:
return HttpResponseRedirect('/NewUser/?user=' + clearUserName)
except:
raise ValidationError('Invalid Request', code='300') ## [ TODO ]: add a custom error page here.
else:
RegForm = RegistrationForm()
return render(request, 'VA/reuse/register.html', {
'form': RegForm
})
else:
RegForm=RegistrationForm()
return render(request, 'template.html', {'formset': RegForm})
当然,您应该更改模板的上下文,具体取决于您需要呈现的内容。
答案 1 :(得分:0)
不,您应该将else
之后的所有内容移回一个缩进级别。否则,如果请求不是POST,则不会返回任何内容。