Django

2012-12-17 12 views
8

में साइटमैप लागू करना मुझे अपने आवेदन में साइटमैप को लागू करने में समस्या हो रही है। मैं Virtualenv, django 1.4 और पायथन 2.7 का उपयोग कर रहा हूँ। अगर आप इसे हल करने में मेरी मदद कर सकते हैं तो मैं सराहना करता हूं।Django

यह मैं क्या किया है:

  1. मेरी urls.py में

    from sitemap import JobPostSitemap 
    sitemaps = { 
        'jobs': JobPostSitemap, 
    } 
    ... # Removed other urls 
    url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}), 
    
  2. मेरी sitemap.py फ़ाइल

    from django.contrib.sitemaps import Sitemap 
    from jobs.models import JobPost 
    
    class JobPostSitemap(Sitemap): 
        changefreq = "never" 
        priority = 0.5 
    
        def items(self): 
         return JobPost.objects.filter(approved=True) 
    
        def lastmod(self, obj): 
         return obj.pub_date 
    
  3. मेरे settings.py में फिर

    फ़ाइल निम्नानुसार है:

    TEMPLATE_LOADERS = (
        'django.template.loaders.filesystem.Loader', 
        'django.template.loaders.app_directories.Loader', 
    ) 
    ... 
    INSTALLED_APPS = ( 
        'django.contrib.auth', 
        'django.contrib.contenttypes', 
        'django.contrib.sessions', 
        'django.contrib.sites', 
        'django.contrib.messages', 
        'django.contrib.staticfiles', 
        'django.contrib.sitemaps', 
        'jobs', 
    ) 
    ... 
    

अब जब मैं अपने ब्राउज़र खोलें और http://localhost:8000/sitemap.xml पर जाएँ, मैं निम्नलिखित त्रुटि मिलती है:

ImportError at /sitemap.xml 

No module named django.contrib.sitemaps 
Request Method: GET 
Request URL: http://localhost:8000/sitemap.xml 
Django Version: 1.4.2 
Exception Type: ImportError 
Exception Value:  
No module named django.contrib.sitemaps 
Exception Location: /home/frank/Projects/python/django/techjobsea.com/baseline27/local/lib/python2.7/site-packages/Django-1.4.2-py2.7.egg/django/utils/importlib.py in import_module, line 35 
Python Executable: /home/frank/Projects/python/django/techjobsea.com/baseline27/bin/python 
Python Version: 2.7.3 

मैं समझ नहीं है कि मैं क्या चूक या गलत कर गए हैं।

+0

क्या आपने 'साइटमैप' के लिए सभी आवश्यक स्थापना चरणों का पालन किया है? आवश्यक कदम [यहां] (https://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/) – doru

+0

@ डोरू हां। मैंने सभी चरणों का पालन किया। – Frankline

+0

क्या आपको कोई समाधान मिला? –

उत्तर

17

मुझे भी इसी तरह की त्रुटि थी। मैंने urls.py परिभाषा को बदल दिया है:

from sitemap import JobPostSitemap 
from django.contrib.sitemaps.views import sitemap 
sitemaps = { 
    'jobs': JobPostSitemap, 
} 
... # Removed other urls 
url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}), 

और यह मेरे लिए काम करता था। मुझे नहीं पता क्यों ...

+0

दोस्त, यह वास्तव में काम किया। धन्यवाद। मुझे यह जानने में दिलचस्पी होगी कि यह अन्य विधि के विपरीत क्यों काम करता है। Sweeet! – Frankline

+1

क्या 'पैटर्न' कॉल में एक खाली 'उपसर्ग' पैरामीटर है? कुछ 'urlpatterns = पैटर्न (' some.prefix ', url (r' ... '), ....) की तरह कुछ? यह आपकी समस्या हो सकती थी। – naktinis

-2

, अपने Django साइट पर साइटमैप पीढ़ी सक्रिय करने के लिए अपने URLconf को यह पंक्ति जोड़ें:

(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}) 

यह Django बताता है एक साइटमैप का निर्माण करने की है जब एक ग्राहक /sitemap.xml तक पहुँचता है।

+1

वह जो कुछ भी पहले से मिला है उससे अलग कैसे है? – piokuc

0

यह PYTHONPATH समस्या हो सकता है। python manage.py shell चलाएं और import django.contrib.sitemaps

+0

मैंने किया। कोई ग़लती नहीं। – Frankline

0

समस्या शायद url.py कॉन्फ़िगरेशन में निहित है जिसे आपने पूरी तरह सबमिट नहीं किया है। मेरे मामले में मैंने अनजाने में फॉर्म का एक उपसर्ग छोड़ा था: urlpatterns = patterns('...') जिसने Django को सही पथ खोजने से रोका।

+0

धन्यवाद, लेकिन मैंने उस खंड को शामिल किया है। साइटमैप को छोड़कर सभी यूआरएल ठीक काम करते हैं। – Frankline