您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django注册和Django个人资料,使用您自己的自定义表单

Django注册和Django个人资料,使用您自己的自定义表单

您已经准备就绪,您已经成功构建了一个自定义表单,该表单将替换认表单。但是,您尝试使用模型窗体上的save()方法进行自定义处理。这在旧版本的django- registration中是可能的,但是从您在URL conf中指定后端使用v0.8的事实可以看出。

升级指南说:

以前,在注册期间用于收集数据的表单应该实现一个save()方法,该方法将创建新的用户帐户。这已不再是这种情况; 创建帐户由后端处理,因此任何自定义逻辑都应移至自定义后端,或将侦听器连接到注册过程中发送的信号。

换句话说,既然您使用的是0.8版,则窗体上的save()方法将被忽略。您需要使用自定义后端或信号进行自定义处理。我选择创建一个自定义的后端(如果有人使用信号处理此功能,请发布代码- 我无法使其正常工作)。您应该能够对其进行修改以保存到您的自定义配置文件

因此,URL conf为:

url(r'^accounts/register/$',
    register,
    {'backend': 'accounts.regbackend.RegBackend','form_class':MM_RegistrationForm},        
    name='registration_register'
    ),

regbackend.py具有必要的导入,基本上是DefaultBackend的一个副本,仅带有register()方法,并添加了:

    u = User.objects.get(username=new_user.username)
    u.first_name = kwargs['first_name']
    u.last_name = kwargs['last_name']
    u.save()
Go 2022/1/1 18:38:26 有363人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶