python - 在 Django 中实现站点地图

标签 python django sitemap

我在应用程序中实现站点地图时遇到问题。我正在使用 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

我不知道我错过了什么或做错了什么。

最佳答案

我有类似的错误。我这样更改了 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}),

它对我有用。我不知道为什么...

关于python - 在 Django 中实现站点地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13911594/

相关文章:

python - 如何使用 K.clear_session() 修复 Keras 中的内存泄漏问题?

Python - 当 url 可能被重写时确定正确的基本 url

python - 如何在 Django REST API 框架中公开过滤的反向关系?

sitemap - 如何在 Magento 2 中创建站点地图

php - 如何收集我的 symfony 项目的所有路由来创建站点地图?

python - 在 tkinter 打开文件弹出窗口中指定 "this pc"作为初始目录

python - 在 setUpClass 中访问 Django 测试客户端

python - 如何从 Django 迁移中调用基于实例的函数并访问实例变量

python - Matplotlib 无法在 Django 上渲染多个等高线图

url - Scrapy:遵循具有特定规则的 URL