現在、djangoでブラウザ上のボタンをクリックするとカウンターの数が1上がるだけの、シンプルなアプリを作成中です。
現在、ボタンと初期値は表示されますが、クリックしてもカウンターの数が上がりません。
クリックするたびごとにリロードされてしまうので、本来ならajaxで実装すべきですが、まずはこの一番シンプルな形で実装したいと思います。
どなたか、解決策をご教示頂けませんでしょうか。
何卒宜しくお願い致します。
(userはpk=1だけが存在するという設定です)
models.py
django
1class User(models.Model): 2 user = models.CharField(max_length=255) 3 game_count = models.IntegerField(default=0)
views.py
django
1from django.shortcuts import render 2from .models import User 3from .forms import CountForm 4 5def user(request): 6 user = User.objects.get(pk=1) 7 if request.method == 'POST' and form.is_valid(): 8 user.game_count += 1 9 user.save() 10 game_count = User.objects.get(pk=1).game_count 11 return render(request, 'app/user.html', {'count': game_count})
user.html
django
1{% block content %} 2<h2>{{ count }}</h2> 3<form action="" method="POST"> 4 <button type="SUBMIT">go</button> 5{% csrf_token %} 6</form> 7{% endblock %}
追記
その後、試行錯誤して以下の行を削除することで動くようになりました。
if request.method == 'POST' and form.is_valid():
しかし、このバリデーションを削除して良いのか疑問に感じます。
SUBMITボタンに対する適切なバリデーションの方法をご存知の方がいましたら、ご教示頂けませんでしょうか。
回答1件
あなたの回答
tips
プレビュー