2

次のような request.POST 経由でデータを受け入れています。

if request.method == 'POST': 
    l = Location() 
    data = l.getGeoPoints(request.POST) 
    appid = settings.GOOGLE_API_KEY 

    return render_to_response('map.html',  
                               {'data': data, 'appid': appid}, 
                               context_instance=RequestContext(request)) 

form-0-locationと呼ばれる一連のテキスト入力ボックスからform-5-locationまでのデータを受け入れます。

追加したいのは、 request.POST にこれらの入力フィールドのいずれかにデータが含まれていることを確認するためのチェックです。私の問題は、Django でこれを説明するための正しい用語がわからないことだと思います。

私は PHP でそれを行う方法を知っています: $_POST の中を調べて、これらのフィールドの少なくとも 1 つが空でないことを確認しますが、Google を検索して正しい答えを見つけることができないようです。

これらの入力フィールドにデータが見つからない場合は、ユーザーをメイン ページにリダイレクトしたいと考えています。

4

6 に答える 6

10

Django の Forms の使用について考えたことはありますか?? フォームを定義するときにフィールドを「必須」としてマークすることができ、Django は送信時にそのフィールドにデータが含まれているかどうかを検証します。また、他の種類の検証も行います。

于 2009-11-17T03:26:47.840 に答える
6
if request.method == 'POST' and request.POST:
       # Process request

リクエストにデータが含まれていない場合、request.POST は false になります。

于 2009-11-17T13:49:15.603 に答える
4

Django のリクエスト オブジェクトでは、POST データが辞書のように格納されるため、辞書のキーがわかっている場合は、それらを検索して空かどうかを確認できます。詳細については、次の 2 つのリンクを参照してください。

http://docs.djangoproject.com/en/dev/ref/request-response/#attributes http://docs.djangoproject.com/en/dev/ref/request-response/#querydict-objects

たとえば、リクエスト オブジェクトがあり、「form-0-location」というキー/変数があることがわかっている場合は、次のようにすることができます。

if request.POST.get('form-0-location'):
    print 'field is not None >> %s' % request.POST.get('form-0-location'')
于 2009-11-17T03:24:58.547 に答える
0

request.POSTQueryDict の型を返します (Dictionary スーパークラスを拡張します)。

つまり、このディクショナリのキー (POST のすべてのパラメーター) を反復処理し、空のキーが見つかったときに false を返すことができます。

(キー入力用request.POST):

if key k has invalid value (i.e. None or something else):
   return false
return true
于 2012-10-01T20:45:22.420 に答える
0

私は、Django Forms を使用するという提案に賛成です。Django を使用している場合は、Django Forms を利用してみませんか?

現在ページにあるフィールドに一致するクイック フォームをデザインします。request.POSTフォームにデータをロードしform.is_valid()、フォームが有効かどうかを判断するために使用します。

于 2009-11-17T13:19:53.120 に答える
0

次のようなものを試すこともできます

if len(request.POST['data'])<1:
    do something if empty
else:
    do something if has data
于 2014-06-03T03:07:47.330 に答える