SO Ho creato un progetto e un'applicazione django come da tutorial e ho tutte le dipendenze necessarie per MongoDB Engine tutto sembrava funzionare bene e dandy fino a quando ho provato a abilitare l'interfaccia di amministrazione.Errore Django MongoDB Engine durante l'esecuzione tellsiteid
ho commentata la richiedono bit, e ha aggiunto 'django_mongodb_engine' e 'djangotoolbox' alla sezione applicazioni in settings.py
Quando provo ad entrare in localhost: 8000/admin ottengo un errore:
"I valori AutoField (chiave primaria predefinita) devono essere stringhe che rappresentano un ObjectId su MongoDB (ottenuto invece u'1 '). Assicurati che il tuo SITE_ID contenga una stringa ObjectId valida."
Dopo un po 'googling a quanto pare devo correre tellsiteid manage.py e mi sputerò un ID posso utilizzare nel mio settings.py che farà l'errore di andare via, ma quando provo a fare funzionare tellsiteid manage.py ottengo:
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 solleva la stessa eccezione anche dopo aver lasciato la base di dati e di partenza fresco. Questo ha funzionato per me: 1) rilasciare il database 2) creare un 'Sito' come per http://stackoverflow.com/a/9780984/76900 3) aggiungere' SITE_ID' alle impostazioni 4) eseguire 'manage.py syncdb' –