Mi modelo es el siguiente:Django 'consulta <object> coincidencia no existe' cuando puedo verlo en la base de datos
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)
estoy usando MySQL, en caso de que lo que importa.
Desde el manage.py shell:
[email protected]:/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
así que sé que hay 406 objetos "personal" de allí. También puedo verlos en la base de datos. Verifico uno de los valores:
>>> s[0].NameFirst
u'"ANDREA"'
Eso también coincide con lo que veo en la base de datos. Ahora trato de 'obtener' este objeto.
>>> 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.
¿Huh? Esto está sucediendo para todos los valores de todas las columnas que he probado. Obtengo el mismo resultado en mi código view.py.
Obviamente estoy haciendo algo tonto. ¿Qué es?
¡Fueron las citas! Esa fue la tontería que estaba haciendo. Todos los valores en la base de datos estaban rodeados por comillas dobles. Ya no veo más citas, así que no me di cuenta. Para el registro, intenté incluir las comillas sin la especificación Unicode y aún así funcionó. Gracias! – ScottOrwig
De nada.Realmente no pensé que era el problema de Unicode, ya que Django ha sido uniformemente increíble sobre el manejo de Unicode, pero no uso MySQL, así que quería asegurarme de que todas mis bases estaban cubiertas. –
En mi caso, era una variable, así que usé Unicode (nombre_variable). –