2012-05-08 4 views
2

私はdjango regustrationを持っています。私は、電子メールがすでに使用されている登録を禁止するためにフォームの評価を延長したいと思います。 Django登録を延長する正しい方法RegisterFormクラス

I持っているこの(まあ、私は私のラップトップは私のGFでHuluの上の声を見るために徴用された本当にいけないので、このメモリから、私のiPad上。):

import django-registration.registrationForm 

class customRegistrationForm(form.RegistrationForm): 
    def clean_email(self): 
     #check here like the one for username! 

は私だけ行うことができますそれ?また、私はこのカスタムフォームをどこに貼るべきですか?私はdjango-registrationフォルダに入れないでください。私のappsフォルダには...私は特定のフォルダに置くことを意味していますか?私はちょうどそれが基本のapp_nameフォルダに貼り付けて、コールがcustomRegistrationFormであるかどうかは重要ですか?

乾杯! アンドリュー

OK UPDATE

ので、私はジャンゴで物事を「上書き」に、私はのinitの.pyのクラスを配置する必要があり、かつ場合、その私がしたいことを働いてきましたサブフォルダをピックアップ、それは

独自ののinitの.pyファイルを必要とするのinitを「フォルダ」の.pyファイルには、これは、おそらくPythonのものである理由は考え

空になることはできませんか?また、私は、フォルダ内の別々のファイルにcustomRegisterForm.pyをわからないことができた場合、またはを必要とそれはとにかくのinitの.py

にする場合は、次回のオーバーライドはしていないようだということです私が推測する方法を働かせてください。

Javaでは、クラスを拡張すると、そのクラスの非公開メンバーはすべてアクセス可能で、親クラスで定義されたとおりに動作します。ジャンゴで 、私は「customRegistrationForm」オブジェクトは、私は明示的に作成していない方法での無属性「get_form_class」

または名前を持っている...私は何かが足りないのです

の多くを取得しています上書き?

UPDATED UPDATE

私は御馳走を働いた

http://pbjots.blogspot.com/2012/01/customising-django-registration-no.html

から第二の例をコピーしました。まだ拡張がすべてのこれらのメソッドを保持していないか、または私がちょうどが破損したコードを盲目的にコピーすることによって何か - アイデア?

+0

Pythonチュートリアルを行う必要があります。これらはすべて標準的なPythonのものです。 –

答えて

1

電子メールを含むように登録フォームを拡張するには、最初にUserCreationFormに電子メールフィールドを追加する必要があります。 forms.pyというファイルを作成して、特定のアプリケーションに必要なすべてのフォームを含めることができますが、私の経験からは、init.pyを頻繁に使用する必要はありません。ここで

あなたは電子メールを含めるために登録フォームを拡張する方法の例です:

from django.contrib.auth.forms import UserCreationForm 
from django import forms 
from django.contrib.auth.models import User 

class RegisterForm(UserCreationForm): 
    email = forms.EmailField(label="E-Mail")  

    class Meta: 
     model = User 
     fields = ("username", "email",) 

    def clean_email(self): 
     email = self.cleaned_data["email"] 

     try: 
     User.objects.get(email=email) 
     except User.DoesNotExist: 
     return email 

     raise forms.ValidationError("A user with that email address already exists.") 

このDjangoのチュートリアルをチェックアウト、それがうまくプロセスの概要を説明します。 https://docs.djangoproject.com/en/1.4/intro/tutorial01/

1

RegistrationFormUniqueEmailフォームをご覧ください。 Django登録の組み込みクラスからの作業

from registration.forms import RegistrationFormUniqueEmail 
関連する問題