更新 0:name
テンプレートの内容とテンプレートの内容を
比較することしかできないため、コードと以下の説明に微妙ではあるが深刻なエラーがありますhiddenname
(これは、ユーザーがチェックボックスのような変更を加えたことを示すだけです)。変更すると教えてくれますが、意図的にチェックボックスはありません)、予約のデータストアname
のステータスと比較して、name
他の誰かがその時間枠を既に予約しているかどうかを確認する必要もあります。したがって、JavaScript を使用することはできず、正しい比較を行うために以下のコードの一部を書き直す必要があります。そして、この質問のタイトルが示唆するように、元の質問が残る場合があります。(コメントの 1 つで、javascript が機能すると誤って言いました。)
update 0:
私は、このコードが、Trans
モデルと gae データストア (後述) を使用してメイン アプリと「アラート テンプレート」の間で通信する場所を示唆する方法で、一種の「アラート」を作成しようとしています。いくつか問題があります。
else:
最初は、句ではなく、句のコードの別の部分でこのアラートが必要でしたelif:
。コードでアラートのより単純なバージョンを使用しようとしたときelif
、python は を無視しているように見えself.response.out.write(template.render(path, template_values))
、条件を終了するこのコードに進みました: return webapp2.redirect("/read/%s" % location_id)
. したがって、私のコードでわかるように、無視された前のコード行をコメントアウトし、後者のコード行に似たものに置き換えようとしましたが、後者の行unexpected
はread
. 私のコードから、まだ 2 つのアプローチが混在していることがわかります。else:
これについて、そしてこれに関して何か違うことは本当にありますelif:
か?
当初、コード内の非常に多くの場所から同じ html テンプレートと Trans モデルを呼び出したいとは思っていませんでしたTrans
。そして今、私はそのような詳細なバージョンを実装するのに苦労しています.
そのような「アラートテンプレート」をPythonで作成する方法の例を探していました。それらは JavaScript ではとても簡単ですが、Python コードでユーザー入力の検証を行おうとしています。例やドキュメントへのポインタは大歓迎です。
weekday_key = db.Key.from_path('Locations',location_id,'Courts', court_id,'Days',weekday)
if name == hiddenname:
pass
elif name != hiddenname and hiddenname == "":
reservation = Reservations.get_or_insert(time[2],parent=weekday_key)
reservation.hour = time[0]
reservation.minute = time[1]
reservation.year = int(year)
reservation.nowmonth = int(nowmonth)
reservation.day = int(day)
reservation.nowweekday = int(nowweekday)
reservation.name = name
reservation.put()
elif name != hiddenname and name!="":
reservation = Reservations.get_by_key_name(time[2],parent=weekday_key)
reservation.hour = time[0]
reservation.minute = time[1]
reservation.year = int(year)
reservation.nowmonth = int(nowmonth)
reservation.day = int(day)
reservation.nowweekday = int(nowweekday)
reservation.name = name
reservation.put()
reason='This was in that time slot already: '
trans = Trans(parent=reservation.key().name()) #this line is iffy
trans.reason=reason
trans.name=hiddenname
trans.put()
iden = trans.key().id() # this is part of the iffy just above
template_values = {'trans':trans}
path = os.path.join(TEMPLATE_DIR, 'unexpected.html')
#self.response.out.write(template.render(path, template_values))
return webapp2.redirect("/unexpected/%s/%d" % (time[2],iden) #more iffy
else:
pass
次のトランスの私のモデル。
class Trans(db.Model):
reason = db.StringProperty()
name = db.StringProperty()
私のjinja2搭載unexpected.html
テンプレートは次のとおりです。
{% extends "base.html" %}
{% block content %}
This unexpected result occurred. {{ trans.reason }}:<emph style="font-weight: bold">{{ trans.name }}</emph>
<br /><br />
<div id="inputdata">
<label>Click the "Ok" button to go back to the previous page so you can elect to edit your entry, or not.
</label>
<button onclick="window.history.back()">Ok</button>
</div>
{% endblock content %}