Tag: Django

  • Django 1.0.2 mod_python 方式报 TypeError 的解决方法

    尝试用 Django 写了一个简单的企业站,部署过程中出了不少问题,不过还好都一一解决了。

    “激动不已”的看到了首页,长出一口气:“总不会再出什么其他问题了吧!”随手点了一个内部链接:
    —————————————————

    TypeError at about

    'NoneType' object is not iterable

    —————————————————
    这回可晕倒了,怎么会有这样一个错误?
    接着往下看,发现错误是由于丢失了一个反斜线引起的:

    Request Method: GET
    Request URL: http://www.i-fang.comabout
    Exception Type: TypeError
    Exception Value:
    'NoneType' object is not iterable
    Exception Location: /usr/lib/python2.5/site-packages/django/core/handlers/base.py in get_response, line 77
    Python Executable: /usr/bin/python
    Python Version: 2.5.2
    Python Path: [‘/home/www/www.i-fang.com/’, ‘/usr/lib/python25.zip’, ‘/usr/lib/python2.5’, ‘/usr/lib/python2.5/plat-linux2’, ‘/usr/lib/python2.5/lib-tk’, ‘/usr/lib/python2.5/lib-dynload’, ‘/usr/local/lib/python2.5/site-packages’, ‘/usr/lib/python2.5/site-packages’, ‘/var/lib/python-support/python2.5’]
    Server time: Tue, 5 May 2009 10:25:17 +0800

    在 Request URL 中域名和路径中间的反斜线丢失了。
    是 urls.py 配置的问题?检查、试验……不是!
    是 apache 配置的问题?检查、试验……还不是!
    所有的内容跟 Django 手册上的完全一致,到底是怎么回事呢?
    看到这个邮件列表的内容,才明白,有时手册是不能随便抄的:
    —————————————————
    Take a look at the django.root PythonOption described here:

    http://docs.djangoproject.com/en/dev/howto/deployment/modpython/?from…

    Are you using that option? If, yes, remove that option entirely and
    try again.
    —————————————————

    去掉了 apache 配置文件中的“PythonOption django.root /”,重启 apache 后,一切访问正常了。