0

models.py にクラスがあります。

class Score(model.Model):
    score = models.IntegerField()

回答が正しい場合は、score オブジェクトを呼び出して、views.py 内で更新します。

def answer(request, level_id):
    # next three lines are working for us.
    o = Level.objects.get(id=level_id)
    guess = request.GET.get('guess', '').strip()
    correct = o.answers.filter(value__iexact=guess).exists()

    b = Score.objects.get('score')
    b.score += o.points
    b.save()

ステートメントを使用して b.score += o.points を実行していませんif。最初に b.score を更新できるかどうかを確認したかったからです。

class Level(model.Models):
    points = models.IntegerField("Point Value')

エラーは次のとおりです。

ValueError at /answer/1 too many values to unpack
4

2 に答える 2

0

これを試して!

def answer(request, level_id):
    # next three lines are working for us.
    o = Level.objects.get(id=level_id)
    guess = request.GET.get('guess', '').strip()
    correct = o.answers.filter(value__iexact=guess).exists()

    b = Score.objects.get(score)
    b.score += int(o.points)
    b.save()

オブジェクトを更新するときに、オブジェクトを保存できません。

    b.save() # should save it
于 2013-02-21T14:23:04.573 に答える
0

クエリしようとしている Score インスタンスを指定する必要があります。

以前に作成したことがあり、主キーが 1 であると仮定すると、次を使用してアクセスできます。

b = Score.objects.get(pk=1)

または、初めての場合は、次を実行できます。

b, created = Score.objects.get_or_create(pk=1)

created作成したばかりの場合はtrueになります

于 2013-02-21T16:39:19.930 に答える