1

我在 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'$
)

我被卡住了,可能是什么原因?

我跟着这个这个

但是还没有运气=/

请问有什么想法吗?

提前致谢!

4

2 回答 2

2

将您的类定义更改为类ContratalosSitemap(sitemaps.Sitemap):,它应该可以工作

于 2015-07-11T08:11:56.980 回答
1

import sitemap您只导入了模块名称。所以如果你想在模块中使用某些东西,你也需要 write sitemap.Sitemap.

如果您编写from sitemap import Sitemap您专门从模块导入 Sitemap 类并可以直接使用它,就像在您的代码中一样。

您也可以这样做from sitemap import *,这将导入模块中的所有定义。但不建议这样做,因为您可能只使用其中的几个名称。

于 2015-07-11T08:20:24.843 回答