首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django站点_ID和站点地图

Django站点_ID和站点地图
EN

Stack Overflow用户
提问于 2016-02-20 00:59:04
回答 3查看 671关注 0票数 1

我正在尝试为Google搜索控制台设置一个站点地图,在设置Django“站点”框架时,我遇到了问题。当我将"SITE_ID = 1“放入项目设置文件的settings.py中时,运行时会收到警告

python manage.py ping_google [/sitemap.xml]

当它返回"urllib2.HTTPError: HTTP错误400:坏请求“时,sitemap.xml不会生成。

代码语言:javascript
复制
# 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

代码语言:javascript
复制
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'),
]

我在django.contrib.sitemapsdjango.contrib.sites中添加了INSTALLED_APPS。我只有一个网站,或“应用程序”。在逻辑方面,我遗漏了一些东西,不知道如何正确定义SITE_ID。如果我删除项目site_id中的SITE_ID =1,则会得到错误"no settings.py defined“

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-21 02:47:56

我忘了删除python manage.py ping_google [/sitemap.xml]中的方括号,这会导致命令不能工作。

票数 1
EN

Stack Overflow用户

发布于 2016-02-20 02:05:10

您可以尝试处理请求,这要容易得多:

代码语言:javascript
复制
PING_URL = "http://www.google.com/webmasters/tools/ping"

def ping_google(sitemap_url=None, ping_url=PING_URL):
    if not sitemap_url:
        raise Exception('sitemap url must be given')

    current_site = Site.objects.get_current()
    url = "http://%s%s" % (current_site.domain, sitemap_url)
    requests.get(
        ping_url, params={'sitemap': url}   
    )

原始的ping_google函数位于这里:

...\site-packages\django\contrib\sitemaps\__init__.py

票数 1
EN

Stack Overflow用户

发布于 2021-03-06 08:20:04

如果您想直接从视图运行命令:

代码语言:javascript
复制
from django.core.management import call_command

def daily_crons_view(request):
    # Ping Google
    return call_command('ping_google [/sitemap.xml]')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35517795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档