我試圖設置Google Search Console的Sitemap,並且在設置Django「網站」框架時遇到問題。當我把「SITE_ID = 1」在我的settings.py在項目設置文件,我跑Django Site_ID's和Sitemaps
python manage.py ping_google [/sitemap.xml]
,當它返回得到警告「urllib2.HTTPError:HTTP錯誤400:錯誤的請求」,並且sitemap.xml不會生成。
# sitemaps.py
from django.contrib import sitemaps
from django.core.urlresolvers import reverse
class StaticViewSitemap(sitemaps.Sitemap):
priority = 0.5
changefreq = 'daily'
def items(self):
return ['index']
def location(self, item):
return reverse(item)
urls.py
from . import views
from .sitemaps import StaticViewSitemap
sitemaps = {
'static': StaticViewSitemap,
}
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap'),
]
我INSTALLED_APPS下添加django.contrib.sitemaps
和django.contrib.sites
。我只有一個網站,或「應用程序」。我在邏輯端丟失了一些東西,不確定如何正確定義SITE_ID。我得到的錯誤「沒有明確的SITE_ID」如果我刪除SITE_ID = 1在我的項目settings.py
用這個代替現有的ping_google函數,然後從current_site = Site.objects.get_current()中取回「NameError:全局名稱」Site'未定義' – TheFlyingProgrammer
@TheFlyingProgrammer你需要導入Site model:'from django.contrib.sites.models import site' – doniyor
不幸的是,這使我的網站打破了「django.core.exceptions.AppRegistryNotReady:應用程序尚未加載。」當我刪除該網站時該網站正常工作 – TheFlyingProgrammer