2012-02-17 20 views
3

Django登録フォームをカスタマイズしようとしています。私はregistration1アプリを作成したmysiteプロジェクトを持っています。カスタムdjango登録フォーム

個人用サイト/ registration1/forms.py

from registration.forms import RegistrationForm 
from django import forms 
class UserRegistrationForm(RegistrationForm): 
    unique_id = forms.CharField(min_length=12,max_length=12,label=("Unique id")) 

個人用サイト/ regbackend.py

import profile 
from registration1.forms import UserRegistrationForm 
from django.conf import settings 
from django.contrib.sites.models import RequestSite 
from django.contrib.sites.models import Site 

from registration import signals 
from registration.forms import RegistrationForm 
from registration.models import RegistrationProfile 

class MyBackend(object): 

    def register(self, request, **kwargs): 
     username, email, password = kwargs['username'],kwargs['email'], kwargs['password1'] 
     if Site._meta.installed: 
     site = Site.objects.get_current() 
     else: 
      site = RequestSite(request) 
     new_user = RegistrationProfile.objects.create_inactive_user(username, email, 
                   password, site) 
     signals.user_registered.send(sender=self.__class__, 
           user=new_user, 
           request=request) 
     user = User.objects.get(username=username) 
     user.unique_id=kwargs['unique_id'] 
     address_user = Address() 
     address_user.save() 
     contact_user = Contact(address=address_user,email=user.email) 
     contact_user.save() 

     address_company = Address() 
     address_company.save() 
     contact_company = Contact(address=address_company) 
     contact_company.save() 
     company = Company(contact=contact_company, admin=user) 
     company.save() 
     user_profile = UserProfile(user=user,contact=contact_user,position='',company=company ) 
    user_profile.save() 
    user.save() 

     return new_user 

個人用サイト/ urls.py

from registration.views import register 
import registration.backends.default.urls as regUrls 
import mysite.regbackend 
from registration1.forms import UserRegistrationForm 
url(r'^accounts/register/$', register,{'backend':'mysite.regbackend.MyBackend','form_class': UserRegistrationForm},name='registration_register'), 

しかし、これは

'MyBackend' object has no attribute 'registration_allowed' 

私にエラーを与えている私はまた、ユーザによって入力されたUNIQUE_IDと、元のDjangoの登録フォームでユーザ名を交換したいですか?

+0

?登録時にユーザープロファイルに余分な情報を追加したいだけですか? –

+0

はい私は登録時に余分な情報を追加し、そのユーザー名フィールドも削除したい – user1163236

答えて

6

私は2つのデフォルトバックエンドのいずれかを使用して、いくつかのメソッドを継承してオーバーライドするためにあなたにお勧め:

.... 
from registration.backends.default import SimpleBackend 
class MyBackend(SimpleBackend): 
    .... 

または電子メールの確認をバックエンドが必要な場合:あなたがやろうとしている正確に何

.... 
from registration.backends.default import DefaultBackend 
class MyBackend(DefaultBackend): 
    .... 
+0

本当に助けてくれたお返事ありがとうございました – user1163236

+5

あなたの質問に答えができると思いますか?あなたはこの場合に印を付けることができますか? – ramusus