Django:sitemap.xml和“未知时区”

Django:sitemap.xml和“未知时区”,django,timezone,Django,Timezone,Django sitemaps在以前的服务器上运行良好,在我的开发环境中运行良好,但在新服务器上投入生产,包括: ValidationError:[u'未知时区'] 下面是回溯。当我试图从管理员那里访问我们的一个模型时,我也遇到了类似的错误 更新: 回溯中的路径build/bdist.linux-x86_64/egg/timezones告诉我有一些奇怪的路径。原来有人从另一台服务器上复制了一堆东西,而没有进行正确的pip安装。我删除了一些旧的lib,修复了virtualenv默认路径,pip安装

Django sitemaps在以前的服务器上运行良好,在我的开发环境中运行良好,但在新服务器上投入生产,包括:

ValidationError:[u'未知时区'] 下面是回溯。当我试图从管理员那里访问我们的一个模型时,我也遇到了类似的错误

更新:

回溯中的路径build/bdist.linux-x86_64/egg/timezones告诉我有一些奇怪的路径。原来有人从另一台服务器上复制了一堆东西,而没有进行正确的pip安装。我删除了一些旧的lib,修复了virtualenv默认路径,pip安装了django时区。现在一切都很好。留着这个以防对其他人有帮助

站点地图文档没有提到任何关于时区配置或依赖项的内容:

服务器的时区被正确地设置为美国/洛杉矶,我在settings.py中也设置了相同的时区,我不确定在这里还能看到什么,谷歌什么也没找到

我在URL.py中引用了我的站点地图定义中的8个模型,但是如果我在破坏停止时对其进行注释,则只有一个博客站点地图导致了破坏,但是我在站点地图中没有博客文章。它包括:

class BlogSitemap(Sitemap):
    changefreq = "weekly"
    priority = 0.7

    def items(self):
        return Post.objects.filter(status=2).order_by('-modified')

    def lastmod(self, obj):
        return obj.modified
为了简洁起见,对博客文章模型稍加编辑

class Post(models.Model):
    """Post model."""

    title           = models.CharField(_('title'), max_length=200)
    slug            = models.SlugField(_('slug'), unique_for_date='publish')
    author          = models.ForeignKey(User, blank=True, null=True)
    body            = models.TextField(_('body'))
    tease           = models.TextField(_('tease'), blank=True)
    status          = models.IntegerField(_('status'), choices=STATUS_CHOICES, default=2)
    allow_comments  = models.BooleanField(_('allow comments'), default=True)
    fp_show         = models.BooleanField('Show on homepage',default=False)
    order           = models.IntegerField(blank=True, null=True)     
    publish         = models.DateTimeField(_('publish'),default=datetime.now())
    created         = models.DateTimeField(_('created'), auto_now_add=True)
    modified        = models.DateTimeField(_('modified'), auto_now=True)
    categories      = models.ManyToManyField(Category, blank=True)  
    tags            = TagField()
    objects         = PublicManager()


    def __unicode__(self):
        return u'%s' % self.title

    @permalink
    def get_absolute_url(self):
        return ('blog_detail', None, {
            'year': self.publish.year,
            'month': self.publish.strftime('%b').lower(),
            'day': self.publish.day,
            'slug': self.slug
        })
使用: Django 1.3 Python 2.7 RHEL 5.7

谢谢

Traceback (most recent call last):

 File "/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response
   response = callback(request, *callback_args, **callback_kwargs)

 File "/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/contrib/sitemaps/views.py", line 39, in sitemap
   urls.extend(site().get_urls(page=page, site=current_site))

 File "/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/contrib/sitemaps/__init__.py", line 75, in get_urls
   for item in self.paginator.page(page).object_list:

 File "/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/db/models/query.py", line 107, in _result_iter
   self._fill_cache()

 File "/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/db/models/query.py", line 772, in _fill_cache
   self._result_cache.append(self._iter.next())

 File "/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/db/models/query.py", line 286, in iterator
   obj = model(*row[index_start:aggregate_start])

 File "/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/db/models/base.py", line 297, in __init__
   setattr(self, field.attname, val)

 File "/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/db/models/fields/subclassing.py", line 99, in __set__
   obj.__dict__[self.field.name] = self.field.to_python(value)

 File "build/bdist.linux-x86_64/egg/timezones/fields.py", line 43, in to_python
   return coerce_timezone_value(value)

 File "build/bdist.linux-x86_64/egg/timezones/utils.py", line 34, in coerce_timezone_value
   raise ValidationError("Unknown timezone")

ValidationError: [u'Unknown timezone']

请参阅上面的更新:部分-这是由旧安装的库和virtualenv中不正确的路径引起的一系列冲突。

尝试调试并查看File/home/username/virtualenvs/kdmc/lib/python2.7/site-packages/django/db/models/fields/subclassing.py obj.中第99行的值=self.field.to_pythonvalueakonsu-我能麻烦你一下如何做吗?我需要在生产中更改Django source才能做到这一点吗?因为这只发生在生产服务器上。谢谢。这里有一个包含各种调试方法的链接:。但是我自己只是修改了源代码,是的,并且抛出了一个异常,这个异常与我想要检查的变量有关。谢谢akonsu-我将在那里阅读。与此同时,路径build/bdist.linux-x86_64/egg/timezones告诉我有一些奇怪的路径。原来有人从另一台服务器上复制了一堆东西,而没有进行正确的pip安装。我删除了一些旧的lib,修复了virtualenv-defaul路径,pip安装了django时区。现在一切都很好。谢谢