J'ai donc créé un projet de Django et une application selon le tutoriel et j'ai toutes les dépendances nécessaires au moteur de MongoDB, tout semblait fonctionner bien et dandy jusqu'à ce que j'essaye d'activer l'interface administrative.
i décontracté les bits requis et a ajouté 'django_mongodb_engine' et 'djangotoolbox' à la section Apps dans Paramètres.py P>
Quand j'essaie d'entrer dans Localhost: 8000 / admin I Obtenez une erreur: p>
"autofield (Touche primaire par défaut) Les valeurs doivent être des chaînes représentant un objet d'un objet sur MongoDB (obtenu u'1 'à la place). Veuillez vous assurer que votre site_id contient une chaîne d'objectivation valide. " P>
Après que certains googling apparemment, je dois apparemment courir gérer.py tellsideid et cela me crachera une carte d'identité que je peux utiliser dans mes paramètres.py qui fera disparaître l'erreur, mais quand j'essaie d'exécuter Manook.py TellSiteID Je reçois: P>
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.
9 Réponses :
Avez-vous essayé ceci: http://django-mongodb.org/troubleShotage .html # Site-ID-Problèmes P>
Vous n'avez pas encore créé de site. Exécuter manage.py syncdb code> pour en créer un. P>
Manage.py Syncdb Code> soulève la même exception même après avoir laissé tomber la base de données et commencer fraîche. Cela a fonctionné pour moi: 1) Drop the Base de données 2) Créez un site
Site Code> Selon Stackoverflow.com/a/ 9780984/76900 3) Ajouter
Site_ID CODE> à Paramètres 4) Exécutez
Manage.py Syncdb code>
Je l'ai couru pendant ma configuration l'autre jour.
Fondamentalement, vous devez logo dans une coquille Mongo et recherchez votre site de votre site, puis ajoutez-le de vos paramètres.py p>
Connectez-vous à une coquille Mongo < / p> Sélectionnez votre db p> puis faire une recherche () sur django_site p> ouvrir vos paramètres.pypy et éditer le site_id = "" Ligne (la mine est ci-dessous) p> qui devrait vous mettre en marche p> p>
Très probablement Vous n'avez pas encore créé un site, de le faire, vous devez donc exécuter la commande ceci crée le site, vous devez maintenant ajouter son site_id dans votre fichier de paramètres. Allez obtenir l'ID de site, connectez-vous au moteur Mongodb qui fonctionne et exécutez les commandes suivantes p> site_id = u'4f4e968adea3b3b30c00001d'
J'utilise Je le résolvez enfin en supprimant la base de données et synchronisez à nouveau. P>
J'espère que cela peut aider quelqu'un :) p> manage.py syncdb code>, puis
manage.py thotsideid code> mais affiche toujours une erreur. P>
Vous pouvez créer votre site, puis obtenir l'ID:
python ./manage.py tellsiteid
Alors, que si nous avons accidentellement couru cela plus d'une fois, pouvez-vous l'effacer?
Si vous n'avez pas besoin de la fonctionnalité CODE> SITES CODE> (qui est très probable) désactiver simplement django.contrib.sites code> application et il corrigera les problèmes de MongoDB liés au site_id :
INSTALLED_APPS = (
(...)
# 'django.contrib.sites', # Comment this out
(...)
)
Très utile pour moi aussi simple que cela semble! J'ai un gâchis avant ça! Merci beaucoup
Pour une raison quelconque, aucune des solutions n'a fonctionné ici pour moi. HTTPS : //gist.github.com/elshargef/2986459
ou ici La requête correspondante du site n'existe pas P> Python ./Manage.py TellSiteID code>, il n'y avait pas de
django_site code> collection et commentant
'django.contrib.sites' code> a causé des erreurs étranges. saisir l'identifiant de la coquille travaillée pour moi cependant, détaillé ici: p>
python ./manage.py shell
>>> from django.contrib.sites.models import Site
>>> Site().save()
>>> Site.objects.all()[0].id
u'4fe7aa759e654e2662000000'
sudo python geper.py shell le mettre dans patterns.py
Site_ID = U'53AA6456984EDD0D5E547E03 ' P> P>