ヒントをありがとう。多分私はそれをもう少しうまく説明するためにこれを編集することができます...
すでに送信されている各タイプのすべての評価を取得するために GQL クエリを実行したい Google App Engine 用のアプリケーションを作成しています。ユーザーがリンクをクリックして個々の評価を編集し、変更を送信できるようにしたいと考えています。これは私が見つけた最良の方法です...
class EvaluationApproval(webapp.RequestHandler):
def get(self):
#search for unapproved general evaluations
query = db.GqlQuery("SELECT * FROM GeneralAssessmentReport WHERE Approved = False")
if query.count() != 0:
for item in query:
#create a link to edit that item
self.response.out.write('<a href="generalFromApprove?key=%s">%s</a>' % (item.key(), item.Name))
#do this for each type of evaluation...
query = db.GqlQuery("SELECT * FROM HeadNeck WHERE Approved = False")
if query.count() != 0:
for item in query:
self.response.out.write('<a href="headNeckApprove?key=%s">%s</a>' % (item.key(), item.Name))
query = db.GqlQuery("SELECT * FROM lowerExtremity WHERE Approved = False")
if query.count() != 0:
for item in query:
self.response.out.write('<a href="lowerApprove?key=%s">%s</a>' % (item.key(), item.Name))
そのため、ユーザーがリダイレクト先のリンクをクリックすると...
class GeneralFormApprove(webapp.RequestHandler):
def get(self):
# get the correct evaluation to approve
key = self.request.get('key')
item = GeneralAssessmentReport.get(key)
#write out the form with key in the form action!
self.response.out.write('<form method="POST" action="/generalFormApprove?key=%s">' % key)
self.response.out.write(GeneralAssessmentReportForm(instance=item))
def post(self):
# get the key once more
key = self.request.get('key')
data = GeneralAssessmentReportForm(data=self.request.POST,instance=GeneralAssessmentReport.get(key))
if data.is_valid():
# save the edited evaluation
entity = data.save(commit=False)
entity.put()
次に、評価の種類ごとにWhateverFormApproveクラスを用意します。これは理にかなっていますか?これを達成するための他のアイデアはありますか?