2011-08-05 14 views
5

stavo lavorando al mio progetto per un po 'e di recente ho notato che quando provo ad andare a localhost/admin/dà fuori un errore:login Admin smesso di funzionare Django

DoesNotExist at /admin/ 

Site matching query does not exist. 

Request Method:  GET 
Request URL: http://127.0.0.1:8000/admin/ 
Django Version:  1.3 
Exception Type:  DoesNotExist 
Exception Value:  

Site matching query does not exist. 

Exception Location:  C:\Python27\lib\site-packages\django\db\models\query.py in get, line 349 

Di solito quando vado lì mi fa accedere prima e poi mi reindirizza, ma ora si sbaglia solo se sono già connesso

Posso accedere al mio amministratore solo dopo aver effettuato l'accesso come amministratore nella funzionalità di accesso localhost che ho creato per gli utenti e quindi andare a quella pagina . Anche il logout dalla pagina di amministrazione ha smesso di funzionare dando lo stesso errore.

Stavo lavorando per aggiungere un nuovo campo al modulo utente e visualizzare il nuovo modulo di creazione utente quando questo è accaduto.

qualcuno ha avuto problemi simili? O forse qualcuno sa che cosa causa questo?

+0

Forse set DEBUG = True nella vostra settings.py modo che possiamo vedere alcuni dettagli .. –

risposta

11

Dai un'occhiata a questo thread, sembra pertinente.

Dalla ultimo post:

Dal momento che l'eccezione, ha detto " 'Site' query corrispondente non esiste", e la documentazione ha detto qualcosa circa SITE_ID che descrive il sito nella tabella del database django_site, sono andato avanti e ho dato un'occhiata al mio database (sqlite). La tabella di django_site era vuota, quindi ho aggiunto una riga con id == 1 (la stessa che ho in settings.py) e poi ha funzionato.

Se non ti dispiace perdere i tuoi dati, puoi provare a eseguire "sql appname", poiché questa tabella doveva essere creata automaticamente.

+0

In realtà si! Questo era il problema Ho creato un ID sito diverso perché volevo che le informazioni sul sito vengano inviate all'utente quando reimposta la sua password. Quindi per qualche ragione quando Site_id = 2 non funziona ma site_id = 1 fa! Grazie :) – Angie

+4

Nel caso in cui altri si imbattessero in questo, ho avuto lo stesso errore dopo aver eliminato "example.com" dall'elenco dei siti. Ci è voluto un po 'per trovare l'origine perché la mia sessione di accesso era ancora attiva. Commentando django.contrib.sites in INSTALLED_APPS risolto questo. –

+0

@JosephMornin Inoltre ho riscontrato questo problema a causa dell'eliminazione di esempio.com. Un'altra soluzione però (se devi mantenere l'app di Sit) è aprire una shell di Django e creare un nuovo sito e salvarlo, quindi cambiare il SITE_ID in settings.py per essere l'id del sito che hai appena creato. In questo modo puoi comunque utilizzare l'app dei siti, se necessario. – hangtwenty

8

Prova commentando o l'eliminazione di 'django.contrib.sites' dal INSTALLED_APPS regolata sul vostro settings.py, che dovrebbe risolvere il problema.

È inoltre possibile controllare la tabella di siti:

python manage.py shell 
from django.contrib.sites.models import Site 
Site.objects.all() 

E se non v'è alcun sito definito per localhost, è possibile creare o ricreare esso:

Site.objects.create(pk=1, domain='127.0.0.1:8000', name='localhost') 

che ha funzionato per me.

1

per chiunque cerchi di installare Django, allauth per Django 1,8 o superiore e questo errore dopo aver seguito le istruzioni qui:

http://django-allauth.readthedocs.org/en/latest/installation.html

Basta aggiungere la seguente riga al urls.py:

from django.contrib.sites.models import Site 

Spero che questo faccia risparmiare tempo a qualcuno.

0

INSTALLED_APPS = [ .... 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount', ....bla bla bla ] SITE_ID = 1

provare aggiungere SITE_ID = 1 ..è ha funzionato per me

Problemi correlati