[Django]-Django – Site matching query does not exist

57πŸ‘

βœ…

Every django app needs a Site to run. Here you do not seem to have it.

Log into your django shell

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

or

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

You should be all set.

πŸ‘€karthikr

43πŸ‘

Add django.contrib.sites in django INSTALLED_APPS and
also add SITE_ID=1 in your django setting file.

πŸ‘€Mr Singh

24πŸ‘

Adding SITE_ID=1 on settings.py did the trick for me.

9πŸ‘

You also need to make sure that the site domain is the same with the one you actually use. For example if you are you are accessing the admin site from http://127.0.0.1:8000/admin/ then your site.domain should be: site.domain = β€˜127.0.0.1:8000’.

5πŸ‘

Try out this in settings.py:

SITE_ID = 1

3πŸ‘

SITE_ID = 1 i didn’t work for me

I had to go to the python shell
./manage.py shell

Then get the existing site id using name or domain

from django.contrib.sites.models import Site
Site.objects.get(name='back').id
> 6

For me it was 6, all i had to do then is to change the SITE_ID = 6 and it worked fine

0πŸ‘

I’m using wsgi, so I had to reboot twice, not sure why.

then clear cache and that was it.

πŸ‘€Brian Sanchez

Leave a comment