0

ユーザーに都市の名前を投票に追加するように要求し、入力された都市の度数分布を作成する非常に単純なアプリを構築しています。なんらかの理由で、名前 (主キー) でデータベースから City オブジェクトを取得しないというのが私の考えです。具体的にはtry:、トレース ステートメントによると、その後の最初の割り当てが完了していません。私は初心者なので、本当に明白なことを見落としているに違いありません。お知らせ下さい。

models.py:

from django.db import models

class City(models.Model):
    name = models.CharField(max_length='20', primary_key=True)
    count = 0

ビュー.py:

def save(request):
name = request.POST['city_name']
try:
    city = City.objects.get(pk=name)
    print 'city does exist'
    city.count += 1
except City.DoesNotExist:
    print 'city does not exist'
    city = City()
    city.name = name
    city.count += 1
city.save()
return render_to_response('thanks.html', {'city_name':name})
4

2 に答える 2

1

モデルは

class City(models.Model):
    name = models.CharField(max_length='20', primary_key=True)
    count = models.IntegerField(default=0)

補足として、(https://docs.djangoproject.com/en/1.4/ref/models/querysets/#get-or-create)は少しクリーンアップするのに役立つかもしれません。

編集:

于 2013-01-18T19:28:22.257 に答える
1

city.save()変更後に電話する必要がありますcity.count

tryブロックとブロックでこれを行う必要がありexceptます。

于 2013-01-18T18:44:06.633 に答える