テンプレートでモデルのクエリーを出す
テンプレートタグ内で、よく関連する情報を引っ張ってきたい時がある。その時は、Modelにメソッドを付けて {{ hoge.method }} としてやればいい
__str__ と __unicode__ と Python3
いちおう、Django1.5から(だっけ?忘れた)はPython3対応をうたってるけど、__str__ と __unicode__ があってそれの対応方法
デコレ
from django.utils.encoding import python_2_unicode_compatible @python_2_unicode_compatible class Room (models.Model): def __str__ (self): return self # def __unicode__ (self): return self # これが有効になっているとエラーを出す
CakePHP の DebugToolbar みたいなのがほしい
django-debug-toolbar をいれればいい(Django1.6で動いた)
1. pip install django-debug-toolbar
2. インストールした先(virtualenv で py27 とかしている場合、「py27/lib/python2.7/site-packages/debug_toolbar」)にあるtemplates と static を適切なディレクトリにまるごとコピー
3. settings.py に色々追記
MIDDLEWARE_CLASSES = ( … 'debug_toolbar.middleware.DebugToolbarMiddleware', # 一番最後出ないとダメだけ、GZip 使ってる場合はそれより上に。 ) INTERNAL_IPS = ('127.0.0.1',) DEBUG_TOOLBAR_PANELS = ( 'debug_toolbar.panels.version.VersionDebugPanel', 'debug_toolbar.panels.timer.TimerDebugPanel', 'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel', 'debug_toolbar.panels.headers.HeaderDebugPanel', 'debug_toolbar.panels.request_vars.RequestVarsDebugPanel', 'debug_toolbar.panels.template.TemplateDebugPanel', 'debug_toolbar.panels.sql.SQLDebugPanel', 'debug_toolbar.panels.signals.SignalDebugPanel', 'debug_toolbar.panels.logger.LoggingPanel', ) DEBUG_TOOLBAR_CONFIG = { 'INTERCEPT_REDIRECTS': True, 'SHOW_TOOLBAR_CALLBACK': lambda (request): True, 'EXTRA_SIGNALS': [], 'HIDE_DJANGO_SQL': True, 'TAG': 'div', }
4. これでだいたい見れた
ログインしてないとアクセス出来ないようにしたい
デコれ
views.py
from django.contrib.auth.decorators import login_required @login_required(login_url='/accounts/login/') def user_index (request): ...
Cake の Session->flash みたいなのはないのか?
メモ書きを一気に。
view 側
{% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %} </ul> {% endif %}
view.py 側
from django.contrib import messages MESSAGE_TAGS = { messages.INFO: '', 50: 'critical', } def action(request): messages.error(request, u'ルーム名を入力してください') return render_to_response("hogs.html", {}, context_instance=RequestContext(request))
パスワードに使うと混乱するアルファベッドと数字
パスワードを「ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789」からランダムに生成すると、表示上とてもよく似てるアルファベッドがあります。フォントによっては区別するように出来ていますが、標準フォントなどでは区別つきにくい場合が多いです。それらの文字はタイプミスを起こして混乱しやすいので、とても似ている文字はどちらか片方だけを使うとか、どちらも使わないというのがあります。で、とても似ている文字一覧という名のメモ。たまに更新する。
- | - | - | 例 | - |
S(大文字「S」) | 5(数字5) | - | S5S5SSSS5 | |
O(大文字「O」) | 0(数字0) | - | O0O0OOO0 | |
I(大文字「I」) | l (小文字「 l」) | 1(数字「1」) | I1lI1l1l1lllI1lIl | |
b(小文字「b」) | 6 (数字6) | - | b6b6b6bb6bb6 | 案外ほとんどのフォントで見分けられる |
D(大文字「D」) | O(大文字「O」) | - | DODODOOODOD | 案外(ry |
PHP53/PHP55比較メモ
switch と 連想配列の取り出し、どっちが速いか気になったので比較してみた。
PHP5.5 での比較
$ /usr/local/Cellar/php55/5.5.4/bin/php switch_or_array.php start arr ... Finish: 8.5129861831665 start sw ... Finish: 5.0694410800934
PHP5.3 での比較
$ /usr/local/Cellar/php53/5.3.27/bin/php switch_or_array.php start arr ... Finish: 10.038110971451 start sw ... Finish: 6.0564711093903
まぁこんなことになりましたよっと。