python - 如何将站点地图集成到 django-oscar?
问题描述
我想为我的 oscar 项目集成站点地图,我使用了同样遵循的django-sitemaps包,创建了一个名为 sitemaps-django 的应用程序,配置了 views.py、sitemaps-django/pages/sitemaps.py、URLconf 在主 urls.py文件
视图.py
from sitemaps_django.pages.sitemaps import PagesSitemap
def sitemap(request):
sitemap = Sitemap(
build_absolute_uri=request.build_absolute_uri,
)
# URLs can be added one-by-one. The only required argument
# is the URL. All other arguments are keyword-only arguments.
for p in Page.objects.active():
url = p.get_absolute_url()
sitemap.add(
url,
changefreq='weekly',
priority=0.5,
lastmod=p.modification_date,
alternates={
code: urljoin(domain, url)
for code, domain in PAGE_DOMAINS[p.language].items()
},
)
# Adding conventional Django sitemaps is supported. The
# request argument is necessary because Django's sitemaps
# depend on django.contrib.sites, resp. RequestSite.
sitemap.add_django_sitemap(PagesSitemap, request=request)
# You could get the serialized XML...
# ... = sitemap.serialize([pretty_print=False])
# ... or use the ``response`` helper to return a
# ready-made ``HttpResponse``:
return sitemap.response(
# pretty_print is False by default
pretty_print=settings.DEBUG,
)
站点地图-django/pages/sitemaps.py
from django.urls import reverse_lazy
from django.conf.urls import url
urlpatterns = [
url(r'^robots\.txt$', robots_txt(
timeout=86400,
sitemaps=[
'/sitemap.xml',
reverse_lazy('articles-sitemap'),
...,
],
)),
]
网址.py
from django_sitemaps import robots_txt
from sitemaps_django.views import sitemap
urlpatterns = [
url(r'^sitemap\.xml$', sitemap),
url(r'^robots\.txt$', robots_txt(timeout=86400)),
...
]
我收到这个错误
url(r'^robots\.txt$', robots_txt(
NameError: name 'robots_txt' is not defined
解决方案
推荐阅读
- android-studio - Android Studio 调试器在到达断点后崩溃
- java - 如何通过 SSL 从开发机器连接到 Heroku shield Postgres 数据库
- azure - 使用 SignalR 的 Azure 应用服务访问限制
- snmp - 如何使用 snmp 修复未定义的标识符错误
- vue.js - Vue awesome swiper 在 vue js modal 插件中无法正常工作
- python-3.x - 如何抑制“类型没有预期的属性”
- javascript - 即使指定了宽度和高度,溢出 x 也不起作用
- json - JsounUtils.fromJson - 第一个字母是大写字母,JsonUtils 不会用大写字母映射字段
- xampp - Xampp 启动 SQL 而不是意外关闭。似乎没有解决方案有效
- arrays - 从大型未排序对象创建对象数组