类似 python 编码"alert"对话框或模板



更新0:在我的代码和下面的解释中有一个微妙但严重的错误,因为我不能只比较模板上的name和模板上的hiddenname(这只是告诉我用户已经做出了更改,就像复选框更改会告诉我的那样,但故意没有复选框),我还需要将name与预留数据存储中name的状态进行比较,以查看是否有其他人已经预留了该时隙。所以我不能使用javascript,我必须重写下面的一些代码来进行正确的比较。原来的问题可能仍然是这个问题的标题所建议的。(在其中一条评论中,我错误地说javascript会起作用。)更新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。你可以从我的代码中看到,这仍然是两种方法的混合,我可以帮助解决这个问题。else:elif:在这方面真的有什么不同吗?

最初,我没有预料到我希望在代码中的这么多地方调用相同的html模板和Trans模型,所以我没有在使用Trans的设计中设计密钥、ID或key_name。现在我在实现这样一个细节的版本时遇到了麻烦。

我一直在寻找一个例子,说明如何在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

我为Trans做的模特在下一期。

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 %}

这个问题在这里得到了回答。这个问题本可以得到答案,但显然提供的信息太多了,没有人看到答案。

最新更新