0

我有 html 表单,其中有可能:

(1) 用户输入什么都没有,例如,如果是文本输入字段;

<input type="text" class="input-xlarge" id="first-name" name="first-name">

(2) 用户保留默认空值,如选择:

<select id="prof-area" class="input-xlarge">
  <option value="0" selected="selected"></option>

(3) 用户留空值,如多选项选择:

<select multiple="multiple" id="reason" name="reason" class="input-xlarge">
    <option value="001">reason001</option>
    <option value="002">reason002</option>

在 GAE 方面的每种情况下,我都应该理解这是空值。

first_name = None
if self.request.get('first-name'):
    first_name = self.request.get('first-name')

适用于案例(1)。

prof_area = None
if self.request.get('prof-area') and self.request.get('prof-area') !='0':
    prof_area = self.request.get('prof-area') 

应该适用于案例(2),但看起来不太好。有没有更好的方法来处理同样的事情?

4

2 回答 2

0

required=True除非您添加了参数,否则您不需要所有这些工作。如果您放置了缺少某些属性的实体,GAE 会创建或更新具有缺少属性的实体为空。请参阅此文档

于 2012-06-30T19:08:06.507 回答
0

您的 prof-area 字段没有名称参数,这可能是您在服务器上看不到数据的原因。

无论如何,试试这个......

在客户端,只需在空选择选项中放入一个空字符串,如下所示:

<select id="prof-area" name="prof-area" class="input-xlarge">
  <option value="" selected="selected"> -- select -- </option>
</select

然后在服务器上,首先将所有值抓取到局部变量中 - 让其他人更容易看到发生了什么......

first_name = self.request.get('first_name')
prof_area = self.request.get('prof-area')
reason = self.request.get('reason')

然后您可以依次检查每个参数...

if first_name:
  # do something with first_name

if prof_area:
  # do something with prof_area

if reason:
  # do something with reason
于 2012-07-05T07:37:05.553 回答