SO Creé un proyecto django y una aplicación según el tutorial y tengo todas las dependencias necesarias para el motor MongoDB. Todo parecía estar funcionando bien hasta que intenté habilitar la interfaz de administración.Django MongoDB Error del motor al ejecutar tellsiteid
que sin comentar los bits requieren, y añadió 'django_mongodb_engine' y 'djangotoolbox' a la sección de aplicaciones en settings.py
Cuando trato de entrar en localhost: 8000/admin Me aparece un error:
"Los valores de AutoField (clave primaria predeterminada) deben ser cadenas que representen un ObjectId en MongoDB (en su lugar se obtuvo u'1). Asegúrese de que su SITE_ID contenga una cadena ObjectId válida."
Después de buscar en Google aparentemente tengo que ejecutar manage.py tellsiteid y me escupirá una identificación que puedo usar dentro de mi settings.py que hará desaparecer el error, pero cuando intento ejecutar manage.py tellsiteid Puedo obtener:
Traceback (most recent call last):
File "./manage.py", line 14, in <module>
execute_manager(settings)
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site- packages/django/core/management/__init__.py", line 438, in execute_manager utility.execute()
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site-packages/django/core/management/__init__.py", line 379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site-packages/django/core/management/base.py", line 191, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site-packages/django/core/management/base.py", line 220, in execute
output = self.handle(*args, **options)
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site-packages/django/core/management/base.py", line 351, in handle
return self.handle_noargs(**options)
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site-packages/django_mongodb_engine/management/commands/tellsiteid.py", line 8, in handle_noargs
site_id = self._get_site_id()
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site-packages/django_mongodb_engine/management/commands/tellsiteid.py", line 19, in _get_site_id
return Site.objects.get().id
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site-packages/django/db/models/manager.py", line 132, in get
return self.get_query_set().get(*args, **kwargs)
File "/Users/holografix/.virtualenvs/django_nonrel_env/lib/python2.7/site-packages/django/db/models/query.py", line 351, in get
% self.model._meta.object_name)
django.contrib.sites.models.DoesNotExist: Site matching query does not exist.
'syncdb' manage.py plantea la misma excepción, incluso después de dejar caer la base de datos y de partida Fresco. Esto funcionó para mí: 1) soltar la base de datos 2) crear un 'Sitio' según http://stackoverflow.com/a/9780984/76900 3) agregar' SITE_ID' a la configuración 4) ejecutar 'manage.py syncdb' –