2017-10-15 5 views
0

私は複数の行を持つテーブルを持っています。それぞれには「編集」ボタンがあります。このボタンをクリックすると、ユーザーは詳細が既に入力済みのフォームにリダイレクトする必要があります。さて、私が定義したデータは、「編集」ボタンの定義内の属性:jQueryのは、私がしている、「電子メール」データ属性の値を導出し、/add-edit-userにPOSTリクエストでそれを渡している使用Django:POSTパラメータを持つテンプレートを返す

<a href='#' class="edit-user" data-email="[email protected]">edit</a> 

:私は私のフォームオブジェクトを定義し、私のテンプレートファイルへのコンテキスト変数として渡ししようとしている次のビューに

$(".edit-user").click(function() 
    { 
     var url = base_url + '/add-edit-user/'; 
     var data = { 
      'email': $(this).data('email'), 
      'csrfmiddlewaretoken': csrftoken, 
     }; 
     // $.post(url, data); 
     $.post(url, data).done(function(result) { 
      console.log(result); 
     }).fail(function(error) { 
      console.log(error); 
     }); 
    }); 

/add-edit-user URLマップ:また私のフォームを持っているページにマッピングされました

def add_edit_users(request): 
    form = AddUpdateForm(request.POST or None) 
    data = {'form': form} 

    return render(request, 'add_edit_users.html', data) 

ユーザーが「編集」ボタンをクリックすると、データ属性に「電子メール」パラメータを設定し、POSTリクエストでそのURLを/add-edit-user URLに渡すと、それ以降は私のフォームテンプレートをフォームオブジェクトと共にコンテキスト変数としてレンダリングし、emailフィールドが既にプレフィックスされているフォームを表示します。

ただし、editリンクをクリックすると、ページはフォームページにリダイレクトされませんが、フォームページのHTML全体が返信に表示されます。入力フィールドがPOST変数から事前に入力されるように、フォームのテンプレートにフローをリダイレクトするにはどうすればよいですか?あなたが達成したい何

+0

ajax投稿はあなたをリダイレクトしません。あなたは隠された電子メールフィールドでフォームを作成しようとしましたか?その後、編集ボタンを使用して送信します。 –

+0

@AjmalNoushadあなたはそれについてもっと詳しく説明できますか?私はその流れがどのようになるか理解していたかどうかわからない。 –

+0

さて、私は答えを追加しました –

答えて

1

は、このようなフォームを作成することによって行うことができます。

<form method='post' action='/add-edit-user/'> 
    {% csrf_token %} 
    <input type="email" name="email" value="[email protected]" hidden> 
    <button class="edit-user" type="submit">Edit</button> 
</form> 

この形式は、URLにPOSTデータに電子メールフィールドの値を送信します。の追加/編集-ユーザー/ 。メールフィールドがあらかじめ入力されたURLにリダイレクトされました。

+0

どのようにしてこの電子メールの値を '/ add-edit-user 'ページにあるフォームで事前入力できますか? –

+0

このフォームを送信しようとしましたか?私はあなたがリクエストを渡してからあらかじめ入力されると思う.POSTをフォームの引数として使う。フォーム –

+0

のアクション属性を見てください。はい、あなたのソリューションは機能します。ありがとう! –

関連する問題