0

我正在构建一个非常简单的应用程序,它要求用户将城市名称添加到投票中,然后创建输入城市的频率分布。出于某种原因,我的观点不是按名称(主键)从数据库中检索 City 对象。具体来说,try:根据我的跟踪语句,之后的第一个分配没有通过。由于我是新手,因此必须忽略一些非常明显的东西。请指教。

模型.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

city.save()更改后需要打电话city.count

您将需要在try块和except块中执行此操作。

于 2013-01-18T18:44:06.633 回答
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 回答