2011-05-22 44 views
19

試圖讓一個oauth模塊的工作我做的促動:manage.py reset sites如何修復django_sites表?

這不得不殺死我的網站管理員和登錄功能的影響。

所以,我的問題是如何讓我回到原點,並解決我破碎的問題。

這裏是試圖以顯示管理工具時,我的電流誤差:

DoesNotExist at /admin/ 
Site matching query does not exist. 
Request Method: GET 
Request URL: http://mdev.5buckchuck.com/admin/ 
Django Version: 1.3 
Exception Type: DoesNotExist 
Exception Value:  
Site matching query does not exist.` 

我看了看文檔,但我迷路了,累了它: http://docs.djangoproject.com/en/1.3/ref/contrib/sites/

這似乎表明:manage.py syncdb

所以,我不知道接下來要做什麼...

+1

「我做出了動作......」哦,給了我一個好肚子笑的人。無論如何,我總得和你一樣,但在我的情況下,通過註銷... – eggonlegs 2012-07-31 14:09:32

+0

相關問題:搜索「SITE_ID」的設置文件,此錯誤可能表明有人只是將它設置爲錯誤的值。 (比如,如果它抱怨沒有'pk'> 1的網站存在,'SITE_ID'不再是默認值,並且可能表明這樣的簡單問題。)我知道這並不回答你上面的問題,但可能是與未來的搜索者有關。 – hangtwenty 2013-02-05 15:10:38

回答

56

你並不需要sites框架,如果你只從項目中運行一個網站,所以最簡單的解決將是從你的INSTALLED_APPS刪除以下項目,其誤差應走:

'django.contrib.sites' 

您還可以重新創建丟失Site對象從外殼。運行python manage.py shell然後:

from django.contrib.sites.models import Site 
Site.objects.create(pk=1, domain='mdev.5buckchuck.com', name='5buckchuck.com') 
+2

巨大的感謝之手,我正在使用他的django-allauth捆綁和它的超級敏感,所以不得不回去。非常感謝喲。 – bmartinek 2011-05-22 15:53:30

+1

這對我有效,但我不知道爲什麼需要它。任何想法爲什麼網站沒有創建開始? – 2013-05-19 22:09:10

+0

嗨,我在執行「sudo rb-site install /var/www/rb.myexample.com」時遇到同樣的問題。獲取的錯誤是:「django.contrib.sites.models.DoesNotExist:網站匹配查詢不存在」。 INSTALLED_APPS在哪裏?我想按照您的建議刪除該行,然後重試。謝謝! – user1164061 2014-07-10 18:00:26

1

我也經歷過這個問題,當玩django-allauth。該應用程序提供了刪除網站的功能。如果刪除settings.py中參數SITE_ID指定的參數,則必須指向另一個有效站點的正確PK。

如果您刪除了默認網站example.com(更改是在添加其他網站後做了一些清理),那麼您可能只想選擇通過將SITE_ID設置爲2創建的其他網站。如果您使用SQL數據庫,請查找django_site表,並找到您希望使用的站點ID。

這樣,不需要進入shell並重新創建不需要的所需站點。

8

在settings.py中提供SITE_ID = 1。這將工作。

+1

工作。謝謝你 – pyetti 2016-07-26 02:09:23

+0

歡呼@pyetti !! – 2017-07-19 10:58:14

+0

有時,如果您通過管理員添加更多站點並刪除其中一些站點,每個站點都有一個ID,但是一旦我更改了它開始工作的數據庫中的ID後,它就不適用於我了,因此請確保SITE_ID與數據庫中的ID匹配。這解決了我。 – Radek 2017-10-21 23:47:44