2013-04-17 13 views
5

Próbuję uzyskać działanie strony administratora mojej aplikacji w Django. Po prostu zsynchronizuję DB i przejdę do witryny, ale pojawia się błąd ...Django - Kwerenda pasująca do witryny nie istnieje

Site matching query does not exist. 

Jakieś pomysły?

+1

To powielone pytanie http://stackoverflow.com/questions/11476210/getting-site-matching-query-does-not-exist-error-after-creating-django-admin –

+0

Możliwy duplikat [Getting Site Matching Kwerenda nie istnieje Błąd po utworzeniu administratora django] (https://stackoverflow.com/questions/11476210/getting-site-matching-query-does-not-exist-error-after-creating-django-admin) –

Odpowiedz

22

Każda aplikacja Django potrzebuje do uruchomienia Site. Tutaj nie wydaje się, że to ma.

Zaloguj się do swojego Django shell

$> ./manage.py shell 
>>> from django.contrib.sites.models import Site 
>>> site = Site() 
>>> site.domain = 'example.com' 
>>> site.name = 'example.com' 
>>> site.save() 

lub

$> ./manage.py shell 
>>> from django.contrib.sites.models import Site 
>>> site = Site.objects.create(domain='example.com', name='example.com') 
>>> site.save() 

powinno być wszystko gotowe.

+0

W jaki sposób/czy należy to dodać za pomocą pliku ustawień? – felix001

+0

Nie można go dodać za pomocą ustawień. wykonaj './manage.py shell', a następnie wykonaj te polecenia. – karthikr

+0

Ok, dzięki czemu po prostu zastanawiałem się, dlaczego moja aplikacja nie ma tego. Również jakie odniesienie ma domena w Django. Jeszcze raz dziękuję ... – felix001

4

Należy również upewnić się, że domena witryny jest taka sama z tą, której faktycznie używasz. Na przykład, jeśli uzyskujesz dostęp do strony administracyjnej od http://127.0.0.1:8000/admin/, twoja witryna powinna być: site.domain = '127.0.0.1:8000'.

0

Dodaj django.contrib.site w django INSTALLED_APPS i również dodaj SITE_ID=1 do pliku ustawień django.

Powiązane problemy