python - 如何覆盖 Django-Registration 1.0 版中的默认注册表单?

标签 python django django-registration

我正在从旧版本的 Django-Registration 迁移到该模块的 1.0 版本。

我正在用我创建的自定义注册表单覆盖正常的注册表单。此行为已停止与 Django-registration 1.0 一起使用,我正在尝试让它再次工作。但至今尚未成功。这是我的 urls.py 文件的样子:

from registration.views import RegistrationView
from myApp.forms import *

<...SNIPPED...>

url (
    r'^accounts/register/$', 
    RegistrationView.as_view(),
    {
        'form_class': extendedRegistrationForm,
        'backend': 'registration.backends.default.DefaultBackend',
    }
)

这就是 myApp 的 forms.py 的样子:

from registration.forms import RegistrationFormUniqueEmail

<...SNIPPED...> 

class extendedRegistrationForm(RegistrationFormUniqueEmail):
    firstName = forms.CharField(
        widget=forms.TextInput(), 
        label="First Name",
        required=False,
    )

我看到的行为是这样的:在注册屏幕上,它们是用户名、电子邮件地址、密码、密码确认的输入框和字段标签。但是,我的表单中应显示“名字”的输入框和字段标签的插槽完全是空的。

如何修改 urls.py 和 forms.py 以便我的 ExtendedRegistrationForm 中的字段正确包含在屏幕上?几乎相同的代码在旧版本的 Django-Registration 上运行良好。

最佳答案

首先,如果要使用默认后端,请从默认后端模块导入 View 。

from registration.backends.default.views import RegistrationView

其次,您可以通过子类化 RegistrationView 或将其作为参数传递给 as_view() 来设置 form_class。请参阅CBV docs欲了解更多信息。

url (
    r'^accounts/register/$', 
    RegistrationView.as_view(form_class=extendedRegistrationForm),
)

关于python - 如何覆盖 Django-Registration 1.0 版中的默认注册表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20738954/

相关文章:

python - 如何在html文档中使用for循环

python - 为什么要避免 exec() 和 eval()?

python - 如何从 suds 响应中获取未解析的 XML,以及用于存储的最佳 Django 模型字段

django - docker exec 查看本地文件变化

python - Windows 上的 IPython - 没有突出显示或自动完成

django-registration - django-allauth是否提供了一个简单的电子邮件/密码方法来替换django的用户名/密码方法

django - 注册表单唯一邮箱

django - django 1.5 自定义用户模型的子类化 django-registration 1.0 表单

python - 如何设置 pyvisa 异常处理程序?

Python:使用正则表达式从字符串中删除\u200b