アプリエンジン(Python)のフォームハンドラで問題が発生しました。私は、サーバーエラーが発生したメッセージ「を取得し、ブラウザ上でApp Engine:TypeError in handlers.py
INFO 2011-02-07 14:06:59,364 dev_appserver.py:3317] "GET /favicon.ico HTTP/1.1" 404 - Traceback (most recent call last):
File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/wsgiref/handlers.py", line 92, in run self.result = application(self.environ, self.start_response)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/__init__.py", line 531, in __call__ handler.handle_exception(e, self.__debug)
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/__init__.py", line 394, in handle_exception self.error(500) TypeError: 'bool' object is not callable
INFO 2011-02-07 14:07:01,986 dev_appserver.py:3317] "POST /newevent HTTP/1.1" 500 -`
:私はハンドラにフォームを投稿するとき基本的に私は、次のトレースバックを取得します。管理者に連絡してください。ご覧のように、POSTコマンドの前にエラーが発生し、ハンドラーコードからエラーが発生していないようです。ここではそのフォームのハンドラクラスは(post_secureは、親クラスでPOSTメソッドによって呼び出されるメソッドです)です:
class SaveEvent(BaseHandler):
def post_secure(self):
userinfo = db.GqlQuery("SELECT * FROM User WHERE fbid = :1", self.user['uid'])[0]
newevent = Event(parent=userinfo)
self.error = False
self.template_values = {}
if (self.request.get('eventname') == ""):
self.template_values['eventnameerror'] = True
self.error = True
else:
newevent.eventname = self.request.get('eventname')
if (self.request.get('venuename') == ""):
self.template_values['venuenameerror'] = True
self.error = True
else:
newevent.venuename = self.request.get('venuename')
if (re.match("[0-9]+\.[0-9][0-9]", self.request.get('eventprice')) == None):
self.template_values['eventpriceerror'] = True
self.error = True
else:
newevent.price_pence = int(float(self.request.get('eventprice')) * 100)
if (re.match("[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]", self.request.get('eventdate')) == None):
self.template_values['eventdateerror'] = True
self.error = True
else:
day = re.split("/", self.request.get('eventdate'))[0]
month = re.split("/", self.request.get('eventdate'))[1]
year = re.split("/", self.request.get('eventdate'))[2]
if (re.match("[0-2][0-9]:[0-5][0-9]", self.request.get('eventtime')) == None):
self.template_values['eventtimeerror'] = True
self.error = True
else:
hours = re.split(":", self.request.get('eventtime'))[0]
minutes = re.split(":", self.request.get('eventtime'))[1]
try:
newevent.date = datetime.datetime(year, month, day, hours, minutes, 0, 0)
except ValueError:
self.template_values['eventdatetimeerror'] = True
self.error = True
if (newevent.date < datetime.datetime.now()):
self.template_values['eventdateerror2'] = True
self.error = True
if (self.request.get('eventlink') == ""):
self.template_values['eventlinkerror'] = True
self.error = True
if (self.error == True):
self.template_values['eventname'] = self.request.get('eventname')
self.template_values['venuename'] = self.request.get('venuename')
self.template_values['eventprice'] = self.request.get('eventprice')
self.template_values['eventdate'] = self.request.get('eventdate')
self.template_values['eventtime'] = self.request.get('eventtime')
self.template_values['eventlink'] = self.request.get('eventlink')
self.tpl('addevent.html', self.template_values)
newevent.put()
self.template_values = {
'newevent' : newevent
}
self.tpl('eventadded.html', self.template_values)
よく見つかった!回答いただきありがとうございます。 +1 – benwad