0

首先,我知道错误是什么意思,我只是对配置感到困惑。

我收到以下错误:

views.Registration didn't return an HttpResponse object

问题是当我访问时localhost/Register,我收到上述错误。

问:如果我想 在访问时(底部)加载模板时localhost/Register显示表单。我怎么做?我是否需要像我目前指定的那样创建另一个视图?我的想法是在查看时将执行以显示(其中包含表单)RegistrationForm()register.htmlrender()/Register/NewUserrender()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 
        })
4

2 回答 2

1

如果请求是“GET”而不是“POST”,则需要渲染一些东西:即。

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})

当然,您应该根据需要渲染的内容更改模板的上下文。

于 2013-08-16T15:06:09.983 回答
0

不,您应该将所有内容从后面移else回一个缩进级别。否则,如果请求不是 POST,则不返回任何内容。

于 2013-08-16T15:09:51.870 回答