0

私はdjangoにカスタムフォームを持っています。検証が機能しないよりも、javascript検証を適用するたびに、正しく機能しています。javascript で検証したいのですが、アラート メッセージは表示されますが、フォームにリダイレクトされませんでした。

知らせる:-

<form method="POST" action="#" class="form-horizontal" id="userform" name="uform" enctype="multipart/form-data" >{% csrf_token %}
 <fieldset>

  <div class="control-group formSep">
   <label for="u_id" class="control-label">App Id </label>
     <div class="controls">
      <input type="text" id="appid" class="input-xlarge" name="appid" value="" />
                                    </div>
                                            </div>
    <div class="control-group">
                                                <div class="controls">
                                                    <button class="btn btn-gebo" type="submit" name="asubmit">Submit</button>
<input type="reset" name="reset" value="Cancel" class="btn btn-gebo" />

                                                </div>
                                            </div>
</fieldset>
</form>

views.py で:-

@csrf_exempt
def applicationform(request):
     if request.method == 'POST':

        getappid = request.POST['appid']
        getjobtitle=request.POST['jobtitle']
        odeskid=request.POST['odeskid']
        clientspent=request.POST['client_spent']
        jobtype=request.POST['jobtype']
        notestype=request.POST['notes']
            request.session['setid'] = request.POST['appid']
                if getappid == '':
            return HttpResponse('<script> alert("fill app id"); </script>')
                else:
            getintable = application(app_id = request.POST['appid'], job_title = request.POST['jobtitle'], odesk_id = request.POST['odeskid'],client_spent = request.POST['client_spent'], job_type = request.POST['jobtype'],notes_type = request.POST['notes'])
        getintable.save()
        return HttpResponseRedirect('/applicationview/')        
     else:
        return render_to_response('applicationform.html')
4

3 に答える 3

1

スクリプトがアラート ステートメントで実行された後にリダイレクトする

 @csrf_exempt
    def applicationform(request):
         if request.method == 'POST':

            getappid = request.POST['appid']
            getjobtitle=request.POST['jobtitle']
            odeskid=request.POST['odeskid']
            clientspent=request.POST['client_spent']
            jobtype=request.POST['jobtype']
            notestype=request.POST['notes']
                request.session['setid'] = request.POST['appid']
                    if getappid == '':
                return HttpResponse('<script> alert("fill app id"); document.location.href="redirect url" </script>') #change here
                    else:
                getintable = application(app_id = request.POST['appid'], job_title = request.POST['jobtitle'], odesk_id = request.POST['odeskid'],client_spent = request.POST['client_spent'], job_type = request.POST['jobtype'],notes_type = request.POST['notes'])
            getintable.save()
            return HttpResponseRedirect('/applicationview/')        
         else:
            return render_to_response('applicationform.html')
于 2013-09-03T07:41:53.970 に答える
0

フォーム アクションには URL が必要です

<form method="POST" action="/applicationview/" class="form-horizontal" id="userform" name="uform" enctype="multipart/form-data" >
于 2013-09-03T06:44:08.893 に答える