クラスコンストラクターを取得するためにグローバルを使用しませんでした。代わりに、現在のモジュールを指す変数を作成し、getattrを使用してクラスコンストラクターをキャプチャしました。他の誰かが私がしたことを見たいと思った場合に備えて、これが私のハンドラーです。
class NewThingHandler(BaseRequestHandler):
def get(self, thing):
self.redirect('/admin/')
def post(self, thing):
this_module = sys.modules[__name__]
ThisModel = getattr(this_module, thing)
arguments = {}
for property in ThisModel.properties().keys():
if type(ThisModel._properties[property]) is db.DateProperty:
this_date = map(int, self.request.get(property).split('/'))
this_date = datetime.date(this_date[2], this_date[0], this_date[1])
arguments[property] = this_date
continue
arguments[property] = self.request.get(property)
new_thing = ThisModel(**arguments)
new_thing.put()
self.redirect('/admin/')
thing
URLからキャプチャされます。