Site matching query does not exist

前端 未结 7 1377
小蘑菇
小蘑菇 2020-11-27 13:27

Python noob, as in this is my first project, so excuse my unfamiliarity.

The site was working very well until I clicked \"log out\" on my app. After that, the websit

相关标签:
7条回答
  • 2020-11-27 13:50

    it seems you fotgot to add SITE_ID=1 in settings.py

    0 讨论(0)
  • 2020-11-27 13:53

    I fixed it without using python manage.py shell

    At first I tried using the commands above using manage.py shell:

    from django.contrib.sites.models import Site
    new_site = Site.objects.create(domain='foo.com', name='foo.com')
    print(new_site.id)
    

    But it gave out an INTEGRITY ERROR

    The short answer is add SITE_ID = 1 to your settings.py If you want to know what your site id is, then go into the actual database, I downloaded sqliteman to see what my table had. So whatever site id you have in the table is what gets assigned to SITE_ID

    This is because there is a function get_current that goes looking for SITE_ID and it doesn't find it in your settings.py

    tables
    -django_site
    --Columns
    ---id
    

    it should have id as 1, name as example.com, domain as example.com

    0 讨论(0)
  • 2020-11-27 13:57

    Table django_site must contain a row with the same value than id (by default equals to 1), as SITE_ID is set to (inside your settings.py).

    0 讨论(0)
  • 2020-11-27 13:59

    I see answers to create a new site and reference id for that. But if you already have a site or somehow you deleted and created the site again from UI then the id keeps on incrementing. To solve this you can get the id as follows:

    python manage.py shell
    from django.contrib.sites.models import Site
    print(Site.objects.get(name='example.com').id)
    

    Get the id you get here into setting.py . Eg.

    SITE_ID = 8
    

    Basically ID in table corresponding yo tour site and in the settings.py should match.

    0 讨论(0)
  • 2020-11-27 14:00

    Query the ID in your database django_site tables and set the right one in your Django settings.py, for example: SITE_ID = 3

    0 讨论(0)
  • 2020-11-27 14:01

    Add SITE_ID = 1 to settings.py in your django project

    0 讨论(0)
提交回复
热议问题