Djangog で Python 3 から 2 に変更して

修正にするにつれ、コードが汚くなっていくのがわかる...(´;ω;`)ブワッ

1. 文字コード

行頭に # coding: UTF-8 を書き込む。
 

2. sitecustomize.py 修正

'ascii' codec can't encode characters in position 87-89: ordinal not in range(128)
japがまずはじめにすべきこと(sitecustomize.pyの編集) - motieの日記
Pythonでの日本語処理:Unicode型と文字列型 - 思い立ったら書く日記
 

自分の場合は、次のディレクトリだった。

/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages

python -v の表記

# /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.pyc matches /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.py
import site # precompiled from /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.pyc

 

3. Decimal Field, TypeError: Cannot convert float to Decimal. First convert the float to a string

# 2 なら
Model(decimalFieldAttribute=Decimal('0.12'))
# 3 なら
Model(decimalFieldAttribute=0.12)

decimal - Django: DecimalField accepting floats, but this should throw an error - Stack Overflow
Different behavior for Django DecimalField on sQlite vs MySQL - Stack Overflow
9.4. decimal — 10進固定及び浮動小数点数の算術演算 — Python 2.7ja1 documentation