次のコード例では、コントローラーからモデルへのリクエストの受け渡しをどのように解決したかを示しています。これを行うより良い方法はありますか?
モデル/MyModel.py
from google.appengine.ext import db
class MyModel(db.model):
a = db.StringProperty(required=True)
b = db.StringProperty(required=True)
c = db.StringProperty(required=True)
class Update:
def __init__(self, x)
self.x = x
def do_something(self)
myquery = db.GqlQuery('SELECT * FROM MyModel WHERE a = :1' self.x)
v = myquery.get()
if not v:
somevalue = MyModel(a = self.request.get('a'), # Doesn't work unless
b = self.request.get('b'), # the request has been
c = self.request.get('c')) # passed
somevalue.put()
コントローラー/MyController.py
import webapp2
from models.MyModel import Update
class WebHandler(webapp2.RequestHandler):
def get(self):
var_x = "string"
var_y = "string"
z = Update(var_x)
z.request = self.request # <--- Is there a better way?
z.do_something()
編集: (2012 年 5 月 30 日) リクエスト変数をモデルに引数として渡す関数を作成しました。すべての繰り返しを回避する Python マジックがあることを期待していましたが、見つかりませんでした。