3

Django アプリケーションにサイトマップを実装しようとしていますが、次のエラーが発生します。django サイトマップのフレームワークを使用しています。何が間違っているのかわかりません。

Traceback:
File "mysite/urls.py" in <module>
  3. from sitemap import *
File "mysite/sitemap.py" in <module>
  5. class Sitemap(sitemaps.Sitemap):

Exception Type: NameError at /
Exception Value: name 'sitemaps' is not defined

ここに sitemap.py ファイルがあります

from django.contrib.sitemaps import Sitemap
from meddy1.models import Doctor
import datetime

class Sitemap(Sitemap):
    def __init__(self, names):
        self.names = names

    def items(self):
        return self.names

    def changefreq(self, obj):
        return 'weekly'

    def lastmod(self, obj):
        return datetime.datetime.now()

    def location(self, obj):
        return reverse(obj)


class DoctorSitemap(Sitemap):
    changefreq = "Daily"
    priority = 1

    def items(self):
        return Doctor.objects.all()

    def lastmod(self, obj):
        return obj.date

ここにurls.pyファイルがあります

from django.conf.urls import patterns, include, url
from django.contrib import admin
from sitemap import *

admin.autodiscover()

sitemaps = {
    'pages':Sitemap(['homepage_imprint', 'homepage_archive']),
    'doctor':DoctorSitemap,
    'site':Sitemap(['name_of_url', 'name_of_url']),
}

urlpatterns = patterns('',
    url(r'^', include('meddy1.urls')),
    url(r'^', include('django.contrib.auth.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^sitemap\.xml', include('django.contrib.sitemaps.views.sitemap'),{'sitemaps': sitemaps}), 
)
4

3 に答える 3

2

モジュール自体ではなく、モジュールSitemaps からインポートしました。モジュール名を削除します。

class Sitemap(Sitemap):

ここでインポートされたクラスを置き換えても、これはほぼ機能します。

または、何をしているのかについてより明確にするには、モジュールのインポートを調整します。インポートを次のように変更します。

from django.contrib.sitemaps import Sitemap

に:

from django.contrib import sitemaps
于 2014-08-09T16:18:28.630 に答える
0

サイトマップの s を小文字に変更し、インポート行に .views を追加するだけです。したがって、新しいインポートは「django.contrib.sitemaps.viewsインポートサイトマップから」である必要があります

于 2021-07-28T11:54:43.467 に答える