Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型查询是';我不能通过_Python_Django_Django Models_Django Views - Fatal编程技术网

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