私はDjango(およびWeb開発)にかなり慣れていないので、この問題に苦労しています。javascriptを使用して単純なタイマーを作成し、タイマーが起動すると更新される変数をモデルに含めたいと考えています。私はそれをする方法に迷っています。
これが私のコードです:
home.html:
<button onclick='activatecount()' value='countdown'>Start Timer</button>
<p id='countdown'></p>
<p id='endofcount'></p>
<script src='{{ STATIC_URL }}timerapp.js'></script>
</body>
</html>
次に、javascript。画面にボタンがあり、ユーザーがボタンをクリックするとタイマーがカウントダウンを開始します。
var myTime = setInterval(displayTime, 1000);//Calls the function displayTime once every second
function subtractSeconds(){
seconds--;
document.getElementById('countdown').innerHTML = seconds; }
var interval;
var minutes = 2;
var seconds = 10;
function activatecount(){
countdown('countdown');
}
function countdown(element) {
interval = setInterval(function() {
var el = document.getElementById(element);
if(seconds == 0) {
if(minutes == 0) {
el.innerHTML = "countdown's over!";
clearInterval(interval);
return;
} else {
minutes--;
seconds = 60;
}
}
if(minutes > 0) {
var minute_text = minutes + (minutes > 1 ? ' minutes' : ' minute');
} else {
var minute_text = '';
}
var second_text = seconds > 1 ? 'seconds' : 'second';
el.innerHTML = minute_text + ' ' + seconds + ' ' + second_text + ' remaining';
seconds--;
}, 1000);
}
私のviews.py:
def home(request):
return render_to_response('home.html', context_instance=RequestContext(request))
そして最後に私のmodels.py:
class User(models.Model):
username = models.CharField(max_length=10)
email = models.EmailField(max_length=254)
first_name = models.CharField(max_length = 20)
last_name = models.CharField(max_length = 20)
join_date = models.DateField().auto_now_add
block_count = models.IntegerField()
def __unicode__(self):
return self.username
タイマーが切れたときにblock_countを1つインクリメントするだけです。(後でさらに機能を追加しますが、この一見些細なことで完全に失われます。)フォームとPOSTを使用してデータベースにデータを送信する方法についての議論しか見つかりませんが、ここではフォームを使用していません。 。
ここでPOSTを使用する必要がありますか?もしそうなら、どのように?