Django 1.6:名称 'Sitemap' 未定义
Django 1.6: name 'Sitemap' is not defined
我在 Django 1.6 上遇到了这个问题
这是我的sitemaps.py
from django.contrib import sitemaps
from django.core.urlresolvers import reverse
from datetime import datetime
class ContratalosSitemap(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.now()
这是我的urls.py
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib import admin
from django.contrib.sitemaps import Sitemap
from sitemaps.py import ContratalosSitemap
#Declaration for sitemaps url
sitemaps = {
'pages' : ContratalosSitemap,
}
urlpatterns = patterns(
'apps.contratalos.views',
url(r'c/(?P<slug>\.*[^ ]{1,128})?/', 'c', name='content'),
url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps'$
)
我遇到了这个问题,可能是什么原因?
我关注了this and this
但还没有运气=/
有什么想法吗?
提前致谢!
将您的 class 定义更改为 class ContratalosSitemap(sitemaps.Sitemap):
它应该可以工作
使用 import sitemap
您只导入了模块名称。所以如果你想在模块中使用一些东西,你也需要写 sitemap.Sitemap
.
如果您编写 from sitemap import Sitemap
,您专门从模块中导入 Sitemap class 并可以直接使用它,就像在您的代码中一样。
您也可以执行 from sitemap import *
,这将导入模块中的所有定义。但不推荐,因为你可能只使用其中的几个名字。
我在 Django 1.6 上遇到了这个问题
这是我的sitemaps.py
from django.contrib import sitemaps
from django.core.urlresolvers import reverse
from datetime import datetime
class ContratalosSitemap(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.now()
这是我的urls.py
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib import admin
from django.contrib.sitemaps import Sitemap
from sitemaps.py import ContratalosSitemap
#Declaration for sitemaps url
sitemaps = {
'pages' : ContratalosSitemap,
}
urlpatterns = patterns(
'apps.contratalos.views',
url(r'c/(?P<slug>\.*[^ ]{1,128})?/', 'c', name='content'),
url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps'$
)
我遇到了这个问题,可能是什么原因?
我关注了this and this
但还没有运气=/
有什么想法吗?
提前致谢!
将您的 class 定义更改为 class ContratalosSitemap(sitemaps.Sitemap):
它应该可以工作
使用 import sitemap
您只导入了模块名称。所以如果你想在模块中使用一些东西,你也需要写 sitemap.Sitemap
.
如果您编写 from sitemap import Sitemap
,您专门从模块中导入 Sitemap class 并可以直接使用它,就像在您的代码中一样。
您也可以执行 from sitemap import *
,这将导入模块中的所有定义。但不推荐,因为你可能只使用其中的几个名字。