使用站点框架时生成Django站点地图

使用站点框架时生成Django站点地图,django,django-sites,django-sitemaps,Django,Django Sites,Django Sitemaps,我正在使用带有RequestSite(无SITE\u IDset)的站点框架来生成基于域的内容。我需要为每个域生成具有不同结果的站点地图,但我没有找到如何使这两个框架协同工作的方法。有没有办法在站点地图中获取当前请求的站点?(从SITE\u IDconfig获取它对我来说不是一个选项) 下面是我想做的一个例子: 从django.contrib.sitemaps导入站点地图 从blog.models导入条目 类BlogSitemap(站点地图): def项目(自我、请求): 返回条目.object

我正在使用带有
RequestSite
(无
SITE\u ID
set)的站点框架来生成基于域的内容。我需要为每个域生成具有不同结果的站点地图,但我没有找到如何使这两个框架协同工作的方法。有没有办法在
站点地图
中获取当前请求的
站点
?(从
SITE\u ID
config获取它对我来说不是一个选项)

下面是我想做的一个例子:

从django.contrib.sitemaps导入站点地图
从blog.models导入条目
类BlogSitemap(站点地图):
def项目(自我、请求):
返回条目.objects.filter(is_draft=False,site=request.site)
但这是不可能的,因为在
items()
中没有
请求。是否有其他方法可以根据站点筛选站点地图中的项目?

请尝试以下示例:


从django.contrib.sitemaps导入站点地图
从django.contrib.sitemaps.views导入站点地图
从blog.models导入条目
类BlogSitemap(站点地图):
_缓存的\u站点=无
def项目(自身):
返回条目.objects.filter(is\u draft=False,site=self.\u cached\u site)
def get_URL(self,page=1,site=None,protocol=None):
self.\u缓存的\u站点=站点
返回super(BlogSitemap,self)。获取URL(page=page,site=site,protocol=protocol)
url.py中

urlpatterns=[
url('sitemap.xml',sitemap{
'sitemaps':{'blog':BlogSitemap}
},name='django.contrib.sitemaps.views.sitemap'),
# ...
#其他你的网址
]

现在应该可以了。如果您有任何问题,请告诉我。

我没有正确理解这个问题。您正在尝试基于请求的域获取站点地图吗?或者你想为域1和域2显示一些特定的站点地图?@JPG是的,我需要基于域的特定内容。请参阅更新的问题,为将用于站点地图的项目准备URL列表。实际上很奇怪,它没有这个功能。