2017-02-12 6 views
0

私はDjangoでリダイレクトを使用して別のページにユーザを送りますが、それはできません。リダイレクトが応答を送信できません

views.py

def func1(request): 
    if not request.user.is_authenticated(): 
     return render(request, 'login/login/login.html') 
    else: 
     if request.method == "POST": 
      return redirect('base:func2') 
     return render(request, 'base/home/index.html') 


def func2(request): 
    if not request.user.is_authenticated(): 
     return render(request, 'login/login/login.html') 
    else: 
     if request.method == "POST": 
      .... 
      return render(request, 
          'bla_bla_bla.html', 
          {'location': location}) 
     elif request.method == 'GET': 
      print('COntrol is here') 
      some_details_form = SomeDetailsForm() 
      return render(request, 'some_url/index.html', 
          {'some_details_form': some_details_form}) 

urls.py

app_name = 'base' 
url(r'^another_url/$', views.func2, name='func2'), 
url(r'^some_url/$', views.func1, name='func1'), 

ベース/ホーム/ index.htmlを

<div class="button" onclick="clicked_it()"> 
    <span id="forward"> Go Further </span> 
</div> 

index.js

function clicked_it() { $.post("/base/some_url/"); };

ように制御私はprint文の出力を見ることができるので、func2のに行くん制御がここにですが、私は関数func2がreturn文でページをレンダリングすることが可能であることを表示されません。コントロールはどこに止まっていますか?

答えて

1

をジャンゴ使用する必要があるのAjaxを使用しての全体のポイントは、それがブラウザのナビゲーション処理をオーバーライドすることです。 Ajaxをリダイレクトしたい場合は、jsで行う必要があります.Ajaxをまったく使用しないでください。

+0

私はWeb開発の初心者で、JSの知識がほとんどないか全く分からないので、少し具体的に教えてください –

+0

まず、その理由を説明してください。clicked_it () '関数を呼び出すことができます。通常のリンクやボタンではありません。 –

+0

私はこれを使用して、ユーザーがページに入力するバックエンドにデータを送信します。 –

0

リダイレクトリダイレクトする必要のある相対URLまたは絶対URLが必要です。 あなたは逆のURLリゾルバ

from django.core.urlresolvers import reverse 

def func1(request): 
    if not request.user.is_authenticated(): 
     return render(request, 'login/login/login.html') 
    else: 
     if request.method == "POST": 
      return redirect(reverse('base:func2')) 
     return render(request, 'base/home/index.html') 
+0

まだリダイレクトできません –

関連する問題