在我的函數中,我從會話中讀取用戶數據並將它們存儲在字典中。接下來,我將它從registration.backend發送到'register'函數,但函數以某種方式將其清空並引發KeyError。我的數據在哪裏去了?從函數調用 '註冊' 功能的代碼:傳遞給函數時,參數從字典中消失
data = request.session['temp_data']
email = data['email']
logging.debug(email)
password1 = data['password1']
userdata = {'email': email, 'password1': password1}
logging.debug(userdata)
backend = request.session['backend']
logging.debug(backend)
user = backend.register(userdata)
和寄存器功能(:http://bitbucket.org/ubernostrum/django-registration/src/tip/registration/backends/default/init.py整個源在這裏):
class DefaultBackend(object):
def register(self, request, **kwargs):
logging.debug("backend.register")
logging.debug(kwargs)
username, email, password = kwargs['email'], kwargs['email'], kwargs['password1']
調試調用它們之後:
2010-07-09 19:24:35,020 DEBUG [email protected]
2010-07-09 19:24:35,020 DEBUG {'password1': u'a', 'email': u'[email protected]'}
2010-07-09 19:24:35,020 DEBUG <registration.backends.default.DefaultBackend object at 0x15c6090>
2010-07-09 19:24:35,021 DEBUG backend.register
2010-07-09 19:24:35,021 DEBUG {}
爲什麼數據可能會丟失?難道我做錯了什麼 ?
@edit爲靜音鬼
register() takes exactly 2 arguments (3 given)
112. backend = request.session['backend']
113. logging.debug(backend)
114. user = backend.register(request, userdata)
這只是一個猜測,而是'後端'一個對象或類?嘗試編寫'backend()。register(request,userdata)'也許吧? – cji 2010-07-09 18:47:52
太棒了,現在它的作品! – muntu 2010-07-09 18:50:04