当我在数据库中看到它时,Django ' 匹配查询不存在'
2023-12-30

我的模型看起来像这样:

class Staff(models.Model):
    StaffNumber = models.CharField(max_length=20,primary_key=True)
    NameFirst = models.CharField(max_length=30,blank=True,null=True)
    NameLast = models.CharField(max_length=30)
    SchoolID = models.CharField(max_length=10,blank=True,null=True)
    AutocompleteName = models.CharField(max_length=100, blank=True,null=True)

我正在使用 MySQL,以防万一。

从manage.py shell:

root@django:/var/www/django-sites/apps# python manage.py shell
Python 2.5.2 (r252:60911, Jan 20 2010, 21:48:48)
[GCC 4.2.4 (Ubuntu 4.2.4-1ubuntu3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from disciplineform.models import Staff
>>> s = Staff.objects.all()
>>> len(s)
406

所以我知道那里有 406 个“Staff”对象。我还可以在数据库中看到它们。我检查其中一个值:

>>> s[0].NameFirst
u'"ANDREA"'

这也与我在数据库中看到的相符。现在我尝试“获取”这个对象。

>>> a = Staff.objects.get(NameFirst='ANDREA')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/var/lib/python-support/python2.5/django/db/models/manager.py", line 93, in get
    return self.get_query_set().get(*args, **kwargs)
  File "/var/lib/python-support/python2.5/django/db/models/query.py", line 309, in get
    % self.model._meta.object_name)
DoesNotExist: Staff matching query does not exist.

啊?我测试过的所有列的所有值都会发生这种情况。我在 view.py 代码中得到相同的结果。

我显然在做一些愚蠢的事情。它是什么?


Try

a = Staff.objects.get(NameFirst=u'"ANDREA"')

The u告诉 Python/Django 这是一个 Unicode 字符串,而不是普通的旧字符串str,并在你的s[0].NameFirst示例,它显示该值包含双引号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我在数据库中看到它时,Django ' 匹配查询不存在' 的相关文章

随机推荐