突然之前,我之前创建和发布的一些页面返回“未找到”错误。重新发布它们并不能解决问题。没有错误日志,只有以下apache日志:
[Wed Jul 17 12:37:18 2013] [error] /var/www/cms/venv/lib/python2.6/site-packages/django/conf/urls/defaults.py:3: DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead
[Wed Jul 17 12:37:18 2013] [error] DeprecationWarning)
[Wed Jul 17 12:37:18 2013] [error] /var/www/cms/venv/lib/python2.6/site-packages/mptt/models.py:305: DeprecationWarning: Implicit manager CMSPlugin.tree will be removed in django-mptt 0.6. Explicitly define a TreeManager() on your model to remove this warning.
[Wed Jul 17 12:37:18 2013] [error] DeprecationWarning
[Wed Jul 17 12:37:18 2013] [error] /var/www/cms/venv/lib/python2.6/site-packages/django/db/models/fields/__init__.py:827: RuntimeWarning: DateTimeField received a naive datetime (2013-07-17 12:37:18.775099) while time zone support is active.
[Wed Jul 17 12:37:18 2013] [error] RuntimeWarning)
[Wed Jul 17 12:37:18 2013] [error] WARNING 2013-07-17 12:37:18,825 base 19632 140515393550304 Not Found: /en/departments/
任何可能的原因?感谢。
答案 0 :(得分:1)
对于不同的问题,您有不同的警告。
第一个警告DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead
是由于Django框架代码本身发生了变化。正如它告诉你的那样,模块django.conf.urls.defaults
已被弃用,你应该使用django.conf.urls
代替,所以在你的代码中替换它将会解决它。这并没有导致你的Django CMS页面没有显示,BTW。
第二个是由于Django CMS代码中的一些更改而引发的另一个弃用警告。您必须查看upgrade notes才能解决此问题。这不会导致您的CMS页面出现问题。
第三个警告DateTimeField received a naive datetime while time zone support is active
被引发,因为您没有正确使用时区支持。首先,确保您已pytz
安装了pip install pytz
个包。然后,例如,您应该使用timezone
模块来获取now()
个时间戳,而不是datetime
。请查看Django Time Zones documentation以解决该问题,因为我们无法查看项目代码中的时间戳使用位置。
查看上一个警告,似乎您丢失的CMS页面的问题发生在时间戳中的某个位置。
答案 1 :(得分:0)
最后我的问题不是时区支持。深入到我的代码中,我有一个带有get_object_or_404()调用的生成器。这不应该被触发,但由于垃圾数据实际上就是这种情况。
因此,下次首先检查您的数据。
答案 2 :(得分:0)
我有一个非常类似的问题。
我的问题是父页未发布。必须发布父页面才能找到子页面。