Внедрение sitemaps в Django

У меня возникла проблема с внедрением sitemaps в моем приложении. Я использую Virtualenv, django 1.4 и Python 2.7. Буду признателен, если вы поможете мне решить эту проблему.

Это то, что я сделал:

  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 

Я не могу понять, что я пропустил или делаю неправильно.

4 Solutions collect form web for “Внедрение sitemaps в Django”

У меня была схожая ошибка. Я изменил определение 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}), 

и это сработало для меня. Я не знаю, почему …

Это может быть проблема PYTHONPATH . Запустите python manage.py shell и попробуйте import django.contrib.sitemaps

Вероятно, проблема заключается в конфигурации url.py, которую вы не полностью подали. В моем случае я случайно оставил префикс формы: urlpatterns = patterns('...') что помешало Django найти правильный путь.

Чтобы активировать создание Sitemap на вашем сайте Django, добавьте эту строку в свой URLconf:

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

Это сообщает Django о создании файла Sitemap, когда клиент обращается к /sitemap.xml.

 
Interesting Posts for Van-Lav

Неожиданное поведение для набора python .__ contains__

несколько версий numpy в Mac OS X

Графический интерфейс GUI с использованием Tk Grid Geometry Manager

Django создает CSV-файл, который содержит Unicode и может быть открыт непосредственно с помощью Excel

Использование scipy.stats.stats в django после развертывания

lxml найти элемент по имени, но использовать переменную в поиске

График временных рядов Python

Является ли шаблон Django кэша urge регулярным выражением?

Установка VTK для Python

Что делать, ведьма, (i) gnore, (w) ipe, (b) опции ackup означают при установке пакета из репозитория с помощью pip?

Разрешение запрещено при запуске скрипта python через bash

Лучший способ сделать регистр без учета регистра, но соответствовать случаю слова, которое нужно заменить?

Рекомендуется ли virtualenv для сервера производства django?

Как удалить кавычки и скобки в кортеже в python

Решить систему линейных целочисленных уравнений в Python

Python - лучший язык программирования в мире.