Python Django模型查询是';我不能通过
我正在开发一个非常简单的应用程序,要求用户将城市名称添加到投票中,然后创建输入城市的频率分布。出于某种原因,我的视图没有按城市对象的名称(主键)从数据库中检索城市对象。具体地说,根据我的跟踪语句,在Python Django模型查询是';我不能通过,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我正在开发一个非常简单的应用程序,要求用户将城市名称添加到投票中,然后创建输入城市的频率分布。出于某种原因,我的视图没有按城市对象的名称(主键)从数据库中检索城市对象。具体地说,根据我的跟踪语句,在try:之后的第一个赋值没有通过。我是个新手,一定忽略了一些很明显的事情。请告知 models.py: from django.db import models class City(models.Model): name = models.CharField(max_length='20'
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})
更改
city.count后需要调用city.save()
您需要在try
块和块中执行此操作,但
块除外。您的模型应该是
class City(models.Model):
name = models.CharField(max_length='20', primary_key=True)
count = models.IntegerField(default=0)
作为旁注,()可能有助于清理一些东西
编辑:没问题,我们都会时不时地做:)有时候它只需要一双新眼睛。@entrepul city.count应该是什么?到目前为止,有多少个城市?然后试试City.objects.count(),我想每次你得到一个City对象时,计数总是为0,并且实际上不会保存到数据库中。我还没有测试过它,所以我不能完全确定。好吧,我想你是对的,所以我把它改成了count=IntegerField(默认值=0),但现在它甚至在我做了syncdb之后也不能将count识别为数据库表。。。您知道为什么会发生这种情况吗?运行syncdb不会添加到现有架构中。您可以删除City表或使用来管理架构迁移。另一个解决方案是手动将count列添加为数据库中的整数字段。如何将City表放入数据库中?这指出您可以运行:python manage.py reset app_name