表单中的数据不会插入到用户标签中

2024-04-19 07:34:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从基类UserCreationForm创建注册表单,并在django中添加email字段。代码如下

表格.py

class ussignup(UserCreationForm):

  email=forms.EmailField()

  class Meta:
    model=User
    fields=('username','email','password1','password2')

  def save(self, commit=True):
        user = super(UserCreationForm, self).save(commit=False)
        user.email=(self.cleaned_data["email"])
        if commit:
            user.save()
        return user

视图.py

def signup(request):
    if request.method=='POST':
        form=ussignup(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/accounts/rgsuc')

    args={}
    args.update(csrf(request))
    args['form']=ussignup()
    return render_to_response('register.html',args)

网址.py

 url(r'^accounts/signup',signup),

错误 输出显示电子邮件字段。但是,它既不验证所需字段,也不将电子邮件字段数据插入到用户数据库表中 我试过看这个视频教程here


Tags: pyselfformreturnifemailrequestsave
1条回答
网友
1楼 · 发布于 2024-04-19 07:34:51

在你看来,你在做什么

form=signup(request.POST)

相反,它应该是

form=ussignup(request.POST) 

例如,使用表单类名来实例化表单。你知道吗

另外,如果表单错误无效,最好显示表单错误(如果有),您可以通过将代码更新为

def signup(request):
    if request.method=='POST':
        form=ussignup(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/accounts/rgsuc')
    else:
        form=ussignup()
    args={}
    args.update(csrf(request))
    args['form']=form
    return render_to_response('register.html',args)

相关问题 更多 >