django 中使用中文查询有问题?

django 中使用中文查询有问题?

最近碰到一个问题,一直没有解决,希望这里的朋友能帮忙想想办法,谢过了!

登录 mysql 客户端执行以下语句查询有数据:
sql=select * from portal_Tresource where keywords like "%最新报道%" order by material_time desc


在 views.py 中通过 django 的 model 查询却没有数据,代码如下:
result=Tresource.objects.all().filter(keywords__contains=u'最新报道').order_by('-material_time')


如果将 filter 中的条件改为非中文的字段,查询结果正确,而且页面显示也是对的,能正确显示查询出来的中文。

以下是我机器上面开发环境的编码:
mysql 数据库:        characterset:    utf8
settings.py:          LANGUAGE_CODE = 'zh-cn'
                             DEFAULT_CHARSET = 'gb18030'
其它py文件和页面均为 utf-8

分别修改成

[Copy to clipboard] [ - ]
CODE:
result=Tresource.objects.all().filter(keywords__contains='最新报道').order_by('-material_time')



[Copy to clipboard] [ - ]
CODE:
result=Tresource.objects.all().filter(keywords__contains=u'最新报道'.encode("gb18030")).order_by('-material_time')

后测试的效果如何?
不好意思,我这几天在公司无法登录论坛

明天试试看
achaoge,
我将代码修改为你说的样子,直接报错了:
DjangoUnicodeDecodeError at /model6/
'utf8' codec can't decode bytes in position 0-1: invalid data. You passed in '\xd7\xee\xd0\xc2\xb1\xa8\xb5\xc0' (<type 'str'>)
Request Method: GET
Request URL: http://localhost:8000/model6/
Exception Type: DjangoUnicodeDecodeError
Exception Value: 'utf8' codec can't decode bytes in position 0-1: invalid data. You passed in '\xd7\xee\xd0\xc2\xb1\xa8\xb5\xc0' (<type 'str'>)
Exception Location: c:\python24\Lib\site-packages\django\utils\encoding.py in force_unicode, line 60
Python Executable: c:\python24\python.exe
Python Version: 2.4.4
Python Path: ['F:\\mytest\\mytest', 'c:\\python24\\lib\\site-packages\\setuptools-0.6c3-py2.4.egg', 'c:\\python24\\lib\\site-packages\\pygments-0.8.1-py2.4.egg', 'C:\\WINDOWS\\system32\\python24.zip', 'F:\\mytest\\mytest', 'c:\\python24\\DLLs', 'c:\\python24\\lib', 'c:\\python24\\lib\\plat-win', 'c:\\python24\\lib\\lib-tk', 'c:\\python24', 'c:\\python24\\lib\\site-packages', 'c:\\python24\\lib\\site-packages\\PIL', 'c:\\python24\\lib\\site-packages\\kodos']

Unicode error hint
The string that could not be encoded/decoded was: ?1?7?1?7?1?7?1?7?1?7?1?7?1?7

...
我在eclipse中查询数据时条件中用到中文,结果无结果,英文和数字没问题。