Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Admin login stopped functioning Django

I was working on my project for a while and recently noticed that when i try to go to localhost/admin/ it gives out an error :

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

Usually when i go there it makes me login first and then redirects me, but now it just errors unless i am already logged in

I can only enter my admin after login in as admin in the localhost login functionality i created for users and then going to that page. Also the logout from the admin page stoped working giving the same error.

I was working on adding a new field to the user module and displaying new user creation form when this happened.

anyone had similar problem? Or maybe someone knows what causing this?

like image 939
Angie Avatar asked Aug 05 '11 13:08

Angie


3 Answers

Check out this thread, it seems relevant.

From the last post:

Since the exception said " 'Site' matching query does not exist", and the docs said something about the SITE_ID describing the site in the django_site database table, I went ahead and took a look at my (sqlite) database. The django_site table was empty, so I added a row with id==1 (the same that I have in settings.py) and then it worked.

If you don't mind loosing your data, you can try to run 'sql appname', as this table was supposed to be built automatically.

like image 199
Dominik Avatar answered Nov 11 '22 00:11

Dominik


Try commenting or deleting 'django.contrib.sites' from the INSTALLED_APPS setting on your settings.py, that should solve the problem.

You can also check your sites table:

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

And if there is no site defined for localhost, you can create it or re-create it:

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

That worked for me.

like image 9
iferminm Avatar answered Nov 11 '22 00:11

iferminm


For anyone trying to install django-allauth for django 1.8 or above and getting this error after following the instructions here:

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

Just add the following line to urls.py:

from django.contrib.sites.models import Site

Hope this saves someone time.

like image 1
Ken T. Avatar answered Nov 11 '22 01:11

Ken T.