/ / कैसे 50.000 से अधिक यूआरएल के लिए django साइटमैप के लिए सूचकांक बनाने के लिए - अजगर, django, साइटमैप, django-sitemaps

50,000 से अधिक यूआरएल के लिए django साइटमैप के लिए इंडेक्स कैसे बनाएं - पायथन, डीजेंगो, साइटमैप, डीजेंगो-साइटमैप

मेरे पास निम्न url कॉन्फ़िगरेशन है

url(r"^sitemap.xml$", index, {"sitemaps": sitemaps}),
url(r"^sitemap-(?P<section>.+).xml", cache_page(86400)(sitemap), {"sitemaps": sitemaps}),

और साइटमैप में निम्नलिखित साइटमैप शामिल हैं

 class ArticlesDetailSiteMap(Sitemap):
changefreq = "daily"
priority = 0.9

def items(self):
return Article.objects.filter(is_visible=True, date_published__lte=timezone.now())

लेकिन 50.000 से अधिक लेख हैं। इसलिए जब मैं कोशिश करता हूं तो मुझे टाइमआउट त्रुटि मिलती है /sitemap-articles.xml क्योंकि यह सभी लेख प्राप्त करने की कोशिश करता है।

कोई भी विचार कि मैं कैसे एक सूचकांक बनाऊं और पृष्ठांकन का काम यहां करूं, जैसा कि नीचे दिए गए दस्तावेज में कहा गया है,

https://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/#creating-a-sitemap-index

उत्तर:

जवाब के लिए 2 № 1

इसे इस्तेमाल करे

from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage

और तब

article_list = Article.objects.filter(is_visible=True, date_published__lte=timezone.now())
paginator = Paginator(article_list, 10)
page = request.GET.get("page")


try:
articles = paginator.page(page)
except PageNotAnInteger:
articles = paginator.page(1)
except EmptyPage:
articles = paginator.page(paginator.num_pages)

और आप यूआरएल की तरह साइट मैप का उपयोग कर सकते हैं sitemap.xml?page=5


जवाब के लिए 0 № 2

मैंने सीमा = ५००० और समस्या का समाधान कर दिया है।

class ArticlesDetailSiteMap(Sitemap):
changefreq = "daily"
priority = 0.9
limit = 5000

def items(self):
return Article.objects.filter(is_visible=True, date_published__lte=timezone.now())

और इसने 5000 तक सभी लेखों के लिए paginated urls बनाए