所以我有 django 注册,并且我想扩展表单的验证以禁止在电子邮件已在使用的情况下进行注册 - 这样做的方法是什么?
我有这个(嗯,我真的没有。我的笔记本电脑被我的 gf 征用在 hulu 上观看 The Voice,所以这个来自记忆和我的 ipad):
import django-registration.registrationForm
class customRegistrationForm(form.RegistrationForm):
def clean_email(self):
#check here like the one for username!
我可以这样做吗?另外,我应该把这个自定义表格贴在哪里?我假设我没有把它放在 django-registration 文件夹中,所以在我的应用程序文件夹中......我是“打算”把它放在一个特定的文件夹中吗?如果我只是将它粘贴在基本 app_name 文件夹中并调用 customRegistrationForm,这有关系吗?
干杯! 安德鲁
更新
好的,所以我已经解决了要在 django 中“覆盖”内容,我需要将类放在init .py 中,并且如果我想拾取一个子文件夹,它需要它自己的init .py 文件
“文件夹” init .py 文件可以为空
不知道为什么会这样,大概是 python 的东西?另外,不确定我是否可以在文件夹中的单独文件中包含 customRegisterForm.py,或者它是否需要在init .py中
无论如何,接下来是覆盖似乎并不像我想象的那样起作用。
在 Java 中,当我扩展一个类时,可以访问所有类的非私有成员,并且它们的行为与父类中定义的完全一样。在 django 中,我得到了很多
“customRegistrationForm”对象没有属性“get_form_class”
或我没有明确创建的方法的名称......我在覆盖中遗漏了什么吗?
更新更新
我复制了第二个例子
http://pbjots.blogspot.com/2012/01/customising-django-registration-no.html
这是一种享受。仍然不确定为什么扩展不能保留所有这些方法,或者我是否只是通过盲目复制代码而破坏了某些东西——有什么想法吗?