0

私は次のことが可能なhtmlフォームを持っています:

(1)テキスト入力フィールドの場合、ユーザー入力は何もありません。

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

(2) ユーザーは select のように、デフォルトの空の値のままにします:

<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

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 に答える
0

required=True引数を追加していない限り、このすべての作業は必要ありません。いくつかのプロパティが欠落しているエンティティを配置すると、GAE は欠落したプロパティが空のエンティティを作成または更新します。このドキュメントを参照してください

于 2012-06-30T19:08:06.507 に答える