2015-01-26 76 views
0

好吧,我正在一個網站上工作,我需要一種方法將分數保存到數據庫。我從iFrame獲得分數,但我不知道如何將它傳遞給Django視圖以將其保存到數據庫。 這是我使用來獲取分數的模板:將變量從模板傳遞到查看

{% block content %} 
<script> 
    /* global $ */ 
    $(document).ready(function() { 
    'use strict'; 
    $(window).on('message', function(evt) { 
     //Note that messages from all origins are accepted 
     //Get data from sent message 
     var msg = evt.originalEvent.data; 
     if(msg.messageType == "SCORE") 
     { 
     msg.score 
     ??? 
     } 
    }); 
    }); 
</script> 
<iframe id="game_iframe" src={{gameurl}}></iframe> 
{% endblock %} 

我將使用某種模式的最終拯救分數,但現在我只是路過這個變量從模板的觀點感興趣。

+1

這不是一個真正的Django模板問題,它更像是一個我懷疑的JS問題。一個可能的答案是啓動一個調用Django視圖的Ajax POST請求。但是也許你可以多說一些你已經嘗試過的東西,哪些部分會讓你感到困難? – dylrei 2015-01-26 19:49:55

回答

1

你需要做的是設置一個Ajax請求&在django視圖中處理得分等。

讀一讀這&它應該給你你需要的一切; http://www.tangowithdjango.com/book/chapters/ajax.html

你可能最終得到JS有點像這樣;

{% block content %} 
<script> 
    /* global $ */ 
    $(document).ready(function() { 
    'use strict'; 
    $(window).on('message', function(evt) { 
     //Note that messages from all origins are accepted 
     //Get data from sent message 
     var msg = evt.originalEvent.data; 
     if(msg.messageType == "SCORE") 
     { 
     $.get('/game/save_score/', {score: msg.score}, function(data){ 
      $('#score').html(data); 
     }); 
     } 
    }); 
    }); 
</script> 
<iframe id="game_iframe" src={{gameurl}}></iframe> 
{% endblock %} 

和一個視圖;

def save_score(request): 
    context = RequestContext(request) 
    score = None 
    if request.method == 'GET': 
     score = request.GET['score'] 

    # Do whatever you need to save the score. 

    return HttpResponse(score) 
+0

非常感謝!我嘗試在鏈接中提到的url中加入url(r'^/game/score/$,save_score),但是我從中得到了404.然後我嘗試了url(r'^/game/score /( ()\ d +(?:\。\ d +))/ $',save_score)給出了500.我嘗試在響應函數中添加alert以查看它是否可用,但它從未彈出過。 (分數:msg.score),函數(data){ //$('#score').html(data); \t \t alert(「woho」); }); – 2015-01-27 08:35:54

+0

好的,我在URL映射中有一個不需要的地方,但是在嘗試提交分數時我仍然收到錯誤500。 「GET/game/save_score /?score = 1 HTTP/1.1」500 10255 – 2015-01-27 10:38:09

+0

@OuTsei您可以使用視圖,URL模式和500追蹤來更新您的問題嗎? – 2015-01-27 10:48:40

相關問題