django-1.3在windows系统环境下的一个出错?'SafeUnicode' object has no attribute 'status_code'

凌晨4点半 发布于 2012/07/05 17:19
阅读 2K+
收藏 0

此问题同时提交在http://www.oschina.net/question/565856_60068
             http://segmentfault.com/question/2923/django-1-3%E5%9C%A8windows%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%9A%84%E4%B8%80%E4%B8%AA%E5%87%BA%E9%94%99-safeunicode-object-has-no-attribute-status_code

 

1) 系统环境是:apache2.2+wsgi+mssql+python2.7+django1.3 , 配置完成后,能够正常访问到django-admin等应用


2) 在浏览器中访问http://127.0.0.1:8006/user_all/时的报错信息:

AttributeError at /user_all/

'SafeUnicode' object has no attribute 'status_code'

Request Method:     GET
Request URL:     http://127.0.0.1:8006/user_all/
Django Version:     1.3.1
Exception Type:     AttributeError
Exception Value:    

'SafeUnicode' object has no attribute 'status_code'

Exception Location:     C:\Python27\lib\site-packages\django\middleware\common.py in process_response, line 94
Python Executable:     C:\Program Files\Apache Software Foundation\Apache2.2\bin\httpd.exe
Python Version:     2.7.2
Python Path:    

['C:\\Python27\\lib\\site-packages\\pip-1.1-py2.7.egg',
 'C:\\WINDOWS\\system32\\python27.zip',
 'C:\\Python27\\Lib',
 'C:\\Python27\\DLLs',
 'C:\\Python27\\Lib\\lib-tk',
 'C:\\Program Files\\Apache Software Foundation\\Apache2.2',
 'C:\\Program Files\\Apache Software Foundation\\Apache2.2\\bin',
 'C:\\Python27',
 'C:\\Python27\\lib\\site-packages',
 'C:\\Python27\\lib\\site-packages\\win32',
 'C:\\Python27\\lib\\site-packages\\win32\\lib',
 'C:\\Python27\\lib\\site-packages\\Pythonwin',
 'D:/wind1/']

Server time:     星期四, 5 七月 2012 17:06:52 +0800


3) settings的数据库配置:(数据库引擎采用的是django-mssql)

DATABASES = {
    'default': {
        ###'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'ENGINE': 'sqlserver_ado',
        'NAME': 'django',                      # Or path to database file if using sqlite3.
        'USER': 'django',                      # Not used with sqlite3.
        'PASSWORD': 'django',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

4) urls中的URL映射:
    url(r'user_all/$', 'mysite.polls.views.django_user_all'),

5) views中的视图函数:
def django_user_all(request):
    from django.contrib.auth.models import User
    entry_list = User.objects.values()[0].all()
    html = "<html><head></head><body> {%for tmp in entry_list%} {{tmp}}  {%endfor%}
</body></html>"
    t = Template(html)
    c = Context(entry_list)

    return t.render(c)

 

6) 希望大家指出问题所在。谢谢了
加载中
0
deleted
deleted
你返回的SafeUnicode不是HttpResponse对象, 直接用render_to_response调用模板输出, 或者用HttpResponse包一下你的返回值
0
大师兄悟空
大师兄悟空
刚才也遇到了这个问题, 在view函数里面最后一句

    return t.render(c)

改成

    return HttpResponse(t.render(c))

返回顶部
顶部