Я работаю над представлением, которое извлекает поле (оценку пользователя), объявленное в модели, где я также обновлю поле (оценку пользователя) после простого оператора if-else, а затем отобразю поле в шаблоне.
Но теперь в текстовой области шаблона, куда я поместил результат, теперь отображается только userScore: объект userScore (1), False вместо значения оценки пользователя. .
Итак, как я могу получить оценку пользователя из модели и обновить поле в представлениях?
morse_logs / game1. html
{% block content %}
<title>GAME 1</title>
<h1>GAME 1</h1>
<h2>1 + 1 = ?</h2>
<form action="" method="get" >
<input type="number" id="ans1" name="ans1"/><br><br>
<button type="submit" name="game1Answer">Submit</button><br><br>
<textarea rows="10" cols="50" name='a2' > {{currentS}} </textarea>
</form>
</div>
{% endblock content %}
morse_logs / views.py
@login_required()
def game1(request):
if request.user and not request.user.is_anonymous:
user = request.user
#else:
#Throw some raised exception here as the user is not valid...
"""The Game 1 page"""
def verifyGame1(val1):
user_score = userScore.objects.get_or_create(user=user)
if val1 == 2:
#user's score declared in model increase 5points
#display correct and 5 points added to user
user_score.score += 5
#user_score = str(user_score)
user_score.save()
return user_score
else:
#user's score declared in model has no point
#display incorrect and 1 point added to user
#user_score = str(user_score)
return user_score
ans1 = request.GET.get('ans1', '')
cScore = verifyGame1(ans1)
return render(request, 'morse_logs/game1.html', {'currentS': cScore})
users / models.py
from django.db import models
from django import forms
from django.contrib.auth.models import User
from django.db.models.signals import post_save
class userScore(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, primary_key=True)
score = models.IntegerField(default=0)