2017-01-03 5 views
0

奇妙な理由から、私がdjangoからhtmlに送信する変数の値がjavascript ajaxで変更されます。javascript ajaxは、djangoがビューから送信する変数を変更します。

私はviews.pyからidを送信してから、本体には{{ id }}を使用しています。これはviews.pyの値と同じです。

しかし、<script>の場合var id = {{ id }};私は別の値を取得します。新しい値は元の値と少し異なります。

元の値がJavaScriptで= 9211775239375291
値= 9211775239375292

私はここで間違って何をしているのですか? views.pyで

context = { 
    'id' : str(id) 
} 

return detail_page(request,context) 

の.htmlで:

<head> 

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 

<script type = "text/javascript" language = "javascript"> 

var myVar = setInterval(ReLoad , 5000); 

var id = {{ id }}; 

function ReLoad() { 
    var url = '/data/' + id; 
    $.get(url, function(data) { 
    var result = JSON.parse(data.replace(/&quot;/g,'"')); 
    console.log(JSON.parse(data.replace(/&quot;/g,'"'))['code']); 
    document.getElementById("code").innerHTML = result['code']; 
    }) 
    .fail(function (jqxhr, status, error) { 
    console.log('error', status, error) 
    }); 
} 

</script> 
<head> 


<body> 

{{ id }} 

<div class="w3-container" id="code"></div> 

</body> 
+0

「少し異なる」とは何ですか?あなたは元の価値の例とあなたのJSで終わるものを挙げることができますか? – Risadinha

+0

元の値= 9211775239375291の値はjavascript = 9211775239375292です –

答えて

0

おそらく、JSは丸め干渉する。変数をJS文字列として使用するようにしてください。

var id = "{{ id }}"; 
関連する問題