最新 Python エクスプローラの Django ソース (djmall) を動かそうと Python 2.5.2、Django 0.95.4、pysqlite 2.5.1 をインストール。
python manage.py syncdb
を実行するとなにやらエラーが出たが終了。
ブラウザで http://localhost:8000/admin を開くとうまくいったが、データの編集をしようとすると
pysqlite2._sqlite.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.
なるエラーが出る。良く見ると syncdb のエラーも同じ。
text_factory で検索して行くとこんなページやこんなページを見つける。
'.connect(' で Django のソースに検索をかけ、ヒットした数十のなかから C:\Python25\Lib\site-packages\Django-0.95.4-py2.5.egg\django\db\backends\sqlite3\base.py の
・先頭付近に import sqlite3
・50行目あたりに self.connection.text_factory = sqlite3.OptimizedUnicode
を追加。
syncdb では表示が一部文字化けしたが、admin のデータ編集画面は動く。
----
勘はまだ生きてるかな?
0 件のコメント:
コメントを投稿