python - Django 查询不匹配

标签 python ajax django web

我有以下 Django 模型:

class State(models.Model):
    name = models.CharField(max_length=80,null=False)
    latitude = models.CharField(max_length=80,null=False)
    longitude = models.CharField(max_length=80,null=False)

def __unicode__(self):
    return self.name

在我的views.py 文件中,我创建了以下方法:

def getCoords(request):
    if request.is_ajax():
        if request.method == 'POST':
            try:
                state = request.POST['state'] #receives the state from JS
                stateInstance = State.objects.get(name=state)
                stateLat = stateInstance.latitude
                stateLong = stateInstance.longitude
                data = {"lat" : stateLat, "long" : stateLong}
             except State.DoesNotExist:
                 return HttpResponse("No record")

             return HttpResponse(simplejson.dumps(data)) #returns json 

所以我通过 ajax 向这个方法发送一个参数,比方说“加利福尼亚”。状态变量获取值(我已经证明了),但查询没有执行,它返回查询不匹配消息。我也尝试过以下方法:

    state = request.POST['state']
        if state == 'California':
            return HttpResponse("Yes!")
        else:
            return HttpResponse(state)

当此代码段返回州时,它会显示加利福尼亚州,这意味着州的值是正确的,但查询未正确执行。我不知道发生了什么事。有什么想法吗?

最佳答案

确保您在 settings.py 中连接到正确的数据库。使用普通的旧 SQL 确保记录确实存在。

SELECT * FROM [app_name]_state WHERE name = 'California';

另外,请从 Django shell 尝试一下。 python Manage.py shell

>>> from [app_name].models import State
>>> s = State.objects.get(name='California')
>>> s
<State: California>

确保实际发送的内容是作为 POST 发送的,而不是意外地在 URL 中使用 GET 变量。另外,请确保 post 变量没有多余的字符并且它实际上是有效的。一个不错的方法是将其打印到控制台,或者如果是 AJAX,则使用 Firebug。

# Single quotes added so you can see any extra spaces in the console
print "'%s'" % state 

关于python - Django 查询不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18858425/

相关文章:

Python 相当于 Perls END block 以在退出后进行清理

python - 根据相似项目的数量有效地对集合进行分组

python如何构造这个类

Jquery和Ajax动态加载IFrame

python - 如何在 Django 中响应 ajax 请求

python - 找不到在 Mac OS X 上安装 python-dev 的方法

python - 协程上的 itertools.tee?

javascript - jQuery:$.ajax 成功回调不允许我分配给外部私有(private)变量

javascript - Angular 是否接受带有连字符的属性?

python - Django 独立脚本