2012-11-30 108 views
1

我正在用Django 1.41構建我的web應用程序並使用GAE進行部署。所以,如此順利,除了當我嘗試在註冊時向用戶發送電子郵件以及允許用戶更改密碼時,所有內容似乎都可以正常工作。 我得到NotimplementedError並沒有提供異常。我粘貼了下面的整個堆棧。我可能做錯了什麼?GAE上的Django NotimplementedError

完整的Django回溯

Environment: 


Request Method: POST 
Request URL: http://1.ngloancalc.appspot.com/register/ 

Django Version: 1.4.1 
Python Version: 2.7.2 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'django.contrib.admindocs', 
'carloan', 
'registeredmember', 
'contact') 
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') 


Traceback: 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/base/data/home/apps/s~ngloancalc/1.363534897067998089/registeredmember/views.py" in userregistration 
    36.    connection.open() 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/mail/backends/smtp.py" in open 
    48.           local_hostname=DNS_NAME.get_fqdn()) 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/mail/utils.py" in get_fqdn 
    16.    self._fqdn = socket.getfqdn() 
File "/base/python27_runtime/python27_dist/lib/python2.7/socket.py" in getfqdn 
    129.   hostname, aliases, ipaddrs = gethostbyaddr(name) 
File "/base/python27_runtime/python27_lib/versions/1/google/appengine/api/remote_socket/_remote_socket.py" in gethostbyaddr 
    313. raise NotImplementedError() 

Exception Type: NotImplementedError at /register/ 
Exception Value: 

使用自定義後端建議後,我得到了錯誤「需要更多的一個值來解壓」

Environment: 


Request Method: POST 
Request URL: http://www.ngloancalc.appspot.com/resetpassword/ 

Django Version: 1.4.1 
Python Version: 2.7.2 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'django.contrib.admindocs', 
'carloan', 
'registeredmember', 
'contact') 
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') 


Traceback: 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/utils/decorators.py" in _wrapped_view 
    91.      response = view_func(request, *args, **kwargs) 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/contrib/auth/views.py" in password_reset 
    160.    form.save(**opts) 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/contrib/auth/forms.py" in save 
    242.    send_mail(subject, email, from_email, [user.email]) 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/mail/__init__.py" in send_mail 
    59.          fail_silently=fail_silently) 
File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/mail/__init__.py" in get_connection 
    31.   mod_name, klass_name = path.rsplit('.', 1) 

Exception Type: ValueError at /resetpassword/ 
Exception Value: need more than 1 value to unpack 

回答

1

另一個解決方法只是爲發展宗旨是:

email_message.extra_headers['message-id'] = 'mydummymessageid' 

防止Django的嘗試創建一個,這樣永遠不會結束試圖撥打電話gethostbyaddr在GAE開發環境