Я использую новейшие инструменты, предоставляемые новейшей средой Google App Engine (GAE), то есть Django 1.3 через
libraries:
- name: django
version: "1.3"
как указано в документации GAE здесь.
Тем не менее, хотя я нашел много ссылок, обсуждающих, как отправлять благословенные сообщения HTTP500 с помощью мощного комбо GAE-Django, все они устарели, потому что они либо просто слишком стары, либо используют «дополнительные» инструменты, такие как AppEngineHelper или django. -nonrel.
Возвращаясь к моей проблеме: я настроил settings.py
для следования инструкциям Django Docs здесь , и, поскольку в GAE открытие сокетов ограничено Я получаю эту трассировку:
ERROR 2012-03-21 23:11:15,855 base.py:209] Internal Server Error: /contact/
Traceback (most recent call last):
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/josvic/dev/qdsa/gae/apputil/decorators.py", line 14, in wrapper
output = func(request, *args, **kw)
File "/home/josvic/dev/qdsa/gae/qdcom/views/contact.py", line 26, in __call__
return self.f(request, *args, **kwargs)
File "/home/josvic/dev/qdsa/gae/qdcom/views/contact.py", line 59, in contact_page
msg.send()
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/mail/message.py", line 251, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/mail/backends/smtp.py", line 79, in send_messages
new_conn_created = self.open()
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/mail/backends/smtp.py", line 42, in open
local_hostname=DNS_NAME.get_fqdn())
File "/home/josvic/dev-tools/google_appengine/lib/django_1_3/django/core/mail/utils.py", line 16, in get_fqdn
self._fqdn = socket.getfqdn()
AttributeError: 'module' object has no attribute 'getfqdn'
Так вот в чем проблема. У нас есть стандартный способ обойти это?
Единственное, что я могу придумать, чтобы обойти эту проблему, - прибегнуть к пользовательскому обработчику 500error
, который использует стандартный почтовый API GAE.