2012-09-26 48 views
0

我在這裏絕對損失我做錯了什麼。我正在爲django註冊編寫一個自定義後端,並且據我所知,我完全按照說明操作。我錯過了什麼論點來完成這項工作?自定義django註冊後端必須只有一個參數

這是我的錯誤信息:

TypeError at /accounts/register/ 
CustomSignUpBackend() takes exactly 1 argument (0 given) 

這裏是我的回溯:

Environment: 


Request Method: GET 
Request URL: http://localhost:8000/accounts/register/ 

Django Version: 1.4.1 
Python Version: 2.7.3 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'api', 
'contact', 
'lessons', 
'mainsite', 
'piston', 
'registration', 
'utils') 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware') 


Traceback: 
File "c:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "c:\Python27\lib\site-packages\registration\views.py" in register 
    178.  backend = get_backend(backend) 
File "c:\Python27\lib\site-packages\registration\backends\__init__.py" in get_backend 
    32.  return backend_class() 

Exception Type: TypeError at /accounts/register/ 
Exception Value: CustomSignUpBackend() takes exactly 1 argument (0 given) 

,這裏是在urls.py相關線路:

url(r'^accounts/register/$', register, {'template_name': 'registration/registration_form.html', 'backend': 'lessons.backends.CustomSignUpBackend', 'form_class': MyRegistrationForm}, name='registration_register'), 

,並終於在這裏是自定義後端代碼(在課程/後端/ init的.py):

class CustomSignUpBackend(DefaultBackend): 

    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) 
     return new_user 
+0

應該'高清TeacherSignupBackend(ARG)'是'類TeacherSignupBackend (parentClass)'? –

+0

是的,它做到了。謝謝 –

回答

1

def TeacherSignupBackend(arg)應該是一流的TeacherSignupBackend(parentClass)

功能......從類的父類(ES)繼承帶參數

+0

爲什麼?他們做什麼不同?發佈代碼並不是很清楚 – Nightfirecat

相關問題