向django注册添加自定义字段时出现问题 [英] Problem in adding custom fields to django-registration

查看:100
本文介绍了向django注册添加自定义字段时出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试扩展RegistrationFormUniqueEmail

I tried extending RegistrationFormUniqueEmail

class CustomRegistrationFormUniqueEmail(RegistrationFormUniqueEmail):
    first_name = forms.CharField(label=_('First name'), max_length=30,required=True)
    last_name = forms.CharField(label=_('Last name'), max_length=30, required=True)
    def save(self, profile_callback=None):
        new_user = super(CustomRegistrationFormUniqueEmail, self).save(profile_callback=profile_callback)
        new_user.first_name = self.cleaned_data['first_name']
        new_user.last_name = self.cleaned_data['last_name']
        return new_user

然后更改视图

#       form = form_class(data=request.POST, files=request.FILES)
        form = CustomRegistrationFormUniqueEmail(data=request.POST, files=request.FILES)

但是我仍然看到包含四个字段的默认视图..

but still I am seeing default view containg four fields only ..

需要帮助

推荐答案

我们最近实施了这样的表单。以下是我们所做的:

We recently implemented such a form. Here's what we've done:


  • 创建一个新的后端只需将它从默认后端复制开始)

  • Create a new backend (just copy it from the default backend to start with)

registration/
    backends/
        default/
        custom/ # <- your new backend

...

在新的 urls.py 中调整后端参数

...
{ 'backend': 'registration.backends.custom.DefaultBackend' },
...


  • 定制 forms.py C $ C>。根据您的喜好(字段和验证)调整此表单

  • Create a forms.py under custom. Adjust this form to your liking (fields and validations)

    注册/ urls.py 点到正确的后端:

     # from registration.backends.default.urls import *
     from registration.backends.custom.urls import *
    


  • 特别的,这是因为:


    • 您的 custom / __ init __。py 将有一个 DefaultBackend 类与一个 get_form_class 方法:

    • Your custom/__init__.py will have a DefaultBackend class with a get_form_class method:

    def get_form_class(self, request):
        """
        Return the default form class used for user registration.
        """
        return RegistrationForm
    


  • 然后您导入自己的 RegistrationForm 在该文件中:

    from registration.backends.custom.forms import RegistrationForm
    


  • 这篇关于向django注册添加自定义字段时出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆