首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ModelForm For Registration

ModelForm For Registration
EN

Stack Overflow用户
提问于 2013-08-16 15:02:17
回答 2查看 46关注 0票数 0

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

我得到了一个错误:

代码语言:javascript
运行
复制
views.Registration didn't return an HttpResponse object

问题是当我访问localhost/Register时,我会得到上面的错误。

Q:如果我希望localhost/Register在访问/Register时在render()中加载register.html模板时从RegistrationForm()中显示表单。我该怎么做?是否需要创建另一个视图,如当前指定的/NewUser?我的想法是,render()将在查看/Register时执行以显示template (其中包含表单)

代码:视图

代码语言:javascript
运行
复制
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 
        })
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-16 15:09:51

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

票数 0
EN

Stack Overflow用户

发布于 2013-08-16 15:06:09

如果请求是“GET”而不是“POST”,则需要呈现某些内容:例如。

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18276401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档