2012-12-17 2 views
8

私のアプリケーションでサイトマップを実装する際に問題があります。私はVirtualenv、django 1.4とPython 2.7を使っています。この問題を解決するのを手伝っていただければ幸いです。Djangoでサイトマップを実装する

これは私がやっていることです:私urls.pyで

  1. 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ファイルは次のとおりです。

    私は私のブラウザを開き、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

'sitemap'に必要なすべてのインストール手順を守っていますか?必要な手順[ここ](https://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/) – doru

+0

@doruはい。私はすべてのステップを踏んだ。 – 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

おい、これは実際に働いた。ありがとう。私は、他の方法とは対照的に、これがなぜ機能するのか知ることに興味があります。スウィート! – Frankline

+1

'patterns'呼び出しに空でない' prefix'パラメータがありましたか? 'urlpatterns = patterns( 'some.prefix'、url(r '...')、....)'のようなもの?これはあなたの問題でした。 – naktinis

-2

、あなたのDjangoサイト上でサイトマップ生成を活性化させるあなたのURLconfに以下の行を追加するには:

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

これは、クライアントが/sitemap.xmlにアクセスしたときにサイトマップを構築するためにはDjangoに指示します。

+1

彼はすでに持っているものとどう違うのですか? – piokuc

0

PYTHONPATH問題があります。 python manage.py shellを実行してみてimport django.contrib.sitemaps

+0

しました。エラーはありません。 – Frankline

0

問題はおそらく完全に提出していないというurl.py設定にあります。私の場合は、誤ってDjangoが正しいパスを見つけられないような形式の接頭辞urlpatterns = patterns('...')を残していました。

+0

ありがとうございますが、私はそのセクションを含めました。すべてのURLは、サイトマップを除いて正常に動作します。 – Frankline

関連する問題