Additional arguments for url lookup in sitemap index

閲覧: 38 回
最初の未読メッセージにスキップ

Sandro Covo

未読、
2020/05/26 8:33:422020/05/26
To: Django developers (Contributions to Django itself)
Hello,

I'm trying to add sitemaps on a per object base to my project. I have created a wrapper around sitemaps.views.sitemap that captures additional parameters to get the object and create the required sitemap. But I can't create a sitemap index, since the index views tries to resolve the sitemap view with only the section parameter.

The solution would be to allow additional parameters to the sitemaps.views.index function that would be used in the lookup for the section-urls. I created a branch and tried to implement this here: https://github.com/django/django/commit/d4ee80daabcf9af4e7cfe6b966522849e8018224

Not sure how to proceed from here, if you think that's ok I think I'll create a pull request?

Best regards
Sandro

Adam Johnson

未読、
2020/05/26 8:55:502020/05/26
To: django-d...@googlegroups.com
I'm trying to add sitemaps on a per object base to my project.

Can you explain this a little more? I don't follow what sitemap structure you're pursuing that's different to the default, nor why.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/b74b4fe0-3479-4363-8169-0d5fe2ac122a%40googlegroups.com.


--
Adam

Sandro Covo

未読、
2020/05/26 9:34:352020/05/26
To: Django developers (Contributions to Django itself)
Sure, my urls look like this:
urlpatterns = (
    path
('<path:path>/', views.page_detail, name="page"),
    path
('<path:path>/sitemap.xml', cache_page(60*60)(views.sitemap_view),
         name
="sitemap-index"),
)

And i have this view for the sitemap_view, that creates the sitemap for each page under the path of the request.

def sitemap_view(request, path='/'):
    sitemaps
= {}

    top_page
= get_object_or_404(
       
Page.objects.active(),
        path
=f"/{path}/" if path else '/',
   
)

    sitemaps
['pages'] = PageSitemap(top_page)

   
for blog_page in top_page.descendants(include_self=True).filter(application='blog'):
        sitemaps
[blog_page.slug] = ArticleSitemap(blog_page)

   
for event_page in top_page.descendants(include_self=True).filter(application='events'):
        sitemaps
[event_page.slug] = EventSitemap(event_page)

   
for category_page in top_page.descendants(include_self=True).filter(application='categories'):
        sitemaps
[category_page.slug] = CategorySitemap(category_page)

   
return sitemap_view(
        request
, sitemaps,
   
)

So under one path lives a seperate structure that has different content.

Adam Johnson

未読、
2020/05/26 16:37:502020/05/26
To: django-d...@googlegroups.com
Oh I see. I think your sitemap structure is quite different to what Django's sitemaps index is intended for. I think it's probably better that you create your own index view based copy-pasting the built-in one, rather than adding extra parameters to it. It's not much code, and Django can't be infinitely flexible.

--
You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-develop...@googlegroups.com.


--
Adam
全員に返信
投稿者に返信
転送
新着メール 0 件