我正在构建一个非常简单的应用程序,要求用户将城市名称添加到民意调查中,然后创建输入城市的频率分布。我的观点出于某种原因,不是通过名称(主键)从数据库中检索City对象。具体来说,根据我的跟踪声明,try:
之后的第一个作业没有通过。因为我是新手,必须忽略一些非常明显的东西。请指教。
models.py:
from django.db import models
class City(models.Model):
name = models.CharField(max_length='20', primary_key=True)
count = 0
views.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})
答案 0 :(得分:1)
更改city.save()
city.count
您需要在try
区块和except
区块中执行此操作。
答案 1 :(得分: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)可能有助于清理一些事情。
编辑: