DjangoのFormsetで少なくとも1つは入力させる入力チェック
FormsetのcleanでraiseしたValidationErrorはnon_form_errorで取得できる
except節で複数の例外を捕捉する
Exceptionなど、例外の基底クラスをexceptすれば子クラスはすべてキャッチされるが、意図しない例外もすべてキャッチしてしまう。
例外クラスをちゃんと指定してキャッチするには、タプルで書けばいい。
MySQLでNULLを空文字に変換 - ifnullとnullif
データ調査でSQLの出力内容をスプレッドシートに貼りつけるとき、NULLが入ると邪魔なので。
mysqlでやったことなかったので調べた。ifnullだった。
mysql> select ifnull(null, 'yes'); +---------------------+ | ifnull(null, 'yes') | +---------------------+ | yes | +---------------------+ 1 row in set (0.00 sec)
nullifなんてのもある
nullifは渡された値がequalだとNULLになる
mysql> select nullif('yes', 'yes'); +----------------------+ | nullif('yes', 'yes') | +----------------------+ | NULL | +----------------------+ 1 row in set (0.01 sec) mysql> select nullif('yes', 'no'); +---------------------+ | nullif('yes', 'no') | +---------------------+ | yes | +---------------------+ 1 row in set (0.00 sec)
Djangoのsyncdbでユーザーを作成しない
syncdbするときに、ユーザーがいらないのにいちいちnoを打つのが面倒。
--noinputオプションつければ、ユーザーを作成しない
$ python manage.py syncdb --noinput
ちなみに、django 1.7ではsyncdbは非推奨になっていて、代わりにmigrateを使うことが推奨されるようになった。
参考:django-admin.py and manage.py | Django documentation | Django
migrateはユーザーを作成しないが、--noinputを渡すことができる。
migrateに--noinputを渡した場合は、post_migrateシグナルに引数としてinteractive=Falseが渡されるようになる。