2016-04-10 5 views
0

私は内部にフォームをレンダリングするモダールを持っています。それを開く前に、View関数からコンテンツを要求します。今、私はajax.success:関数の中で処理できる追加の属性を渡したいと思います。ビューでフォームをレンダリングし、jsonとして追加データを添付してください

アヤックス:

function task_form() { 
$.ajax({ 
    url : "/somewhere/" , // the endpoint 
    type : "GET", // http method 

    // handle a successful response 
    success : function(data) { 
    if(data.attr == "whatever"){ 
     do this 
    }else{ 
     do that 
    }}, 

    // handle a non-successful response 
    error : function(xhr,errmsg,err) { 
       errorstuff 
    } 
}); 
}; 

ビュー:

def someview(request): 
if request.method == 'POST': 
    print("shouldnt happen") 
else: 
    form = SomeForm() 
    response_data = {'form': form} 

return render(request, 'formToInsert.html', response_data) 

私はJsonResponseを(使用してみました)が、そこのdictでHTMLを置く方法がわからない - 私とどのようにjs側で使用してください。

答えて

0

あなたのビューは、この作業を行う必要があります。

def someview(request): 
if request.method == 'POST': 
    print("shouldnt happen") 
else: 
    form = SomeForm() 
    response_data = {'form': form} 

return HttpResponse(json.dumps(response_data), content-type="application/json") 

をSomeFormは() 'JSON' パッケージviの直列化可能である場合、私はわからないが。それ以外の場合は、Djangoのserializeパッケージを使用して同じことを行う可能性があります。

+0

基本的にシリアル化は私の問題です。これを行う最善の方法は何ですか?そして、あなたはどのようにajax.successのhtmlへのレスポンスを「デシリアライズする」でしょうか?それとも、私が見ていない超簡単な方法はありますか? :D – qwertasyx

+0

あなたが試したいくつかのコードを表示する必要があります。私の答えを試しましたか? JavascriptでdataType: 'json'を設定すると、他のjsonオブジェクトのように返されたデータを使用できるはずです –

関連する問題