==Django APIs==
[[Django][Python]]
*http://docs.djangoproject.com/en/dev/
{{amazon|4048672096}}
====Field.db_index====
*True に設定した場合、以下のようにCREATE INDEX 文を出力できる。
C:\work\py\django\mysite>>python manage.py sqlindexes myapp1
BEGIN;
CREATE INDEX "myapp1_mymodel1_field1" ON "myapp1_mymodel1" ("field1");
=====【注意】required=False=====
<<blockquote>>Field の派生クラスは、バリデーションの設定が、required=Trueだが、required=False としないと、チェックONでない場合、form.is_valid()が失敗してしまう。<</blockquote>>
====CharField====
====CommaSeparatedIntegerField====
:
*テンプレート
<<form action='/hogehoge/' method='POST'>>
{% if form %}
BAR:{{form.bar}}
return render_to_response('test/index.html', ctx)
*index.html
<<table>>
{% for i in rows %}
<<tr><><td>>{{ i }}<</td><><td><><input type="text"><></td><></tr>>
{% endfor %}
<</table>>
*結果
[[File:0383_django_template_tag_for01.jpg]]
=====アイテムを繰り返し処理する=====
{% for itm in item_list %}
<<a href="{{itm.detailPageURL}}"><><img src="{{itm.smallImageURL}}"/><></a> >
{% endfor %}
*2 つの引数が等しい場合にブロックを出力する。
{% ifequal style 'text' %}
<<div>>
スタイル変数が 'text' の場合このブロックを出力
<</div>>
{% endifequal %}
===テンプレートの継承===
=====基底=====
*派生でオーバーライドする箇所を、block [名前] ~ endblock で作成
<<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">> <<html>> <<head>> <<meta http-equiv="Content-Type" content="text/html; charset=utf-8">>
{% block html_header %}
{% endblock %}
<</head>> <<body>>
{% block content %}
{% endblock %}
<</body>> <</html>>
=====派生=====
{% extends "base.html" %}
{% block html_header %}
<<script type="text/javascript"><><!-- //--><></script>> <<title>>Title<</title>>
{% endblock %}
{% block content %}
*mod 演算の代替として使える
=====例=====
<<table>> <<tr>>
{% for num in numlist %}
<<td align='right'>>{{ num }}<</td>> <<td><><input type='text' size='6'><></td>>
{% if num|divisibleby:"4" %}
<</tr><><tr> >
{% endif %}
{% endfor %}
<</tr>> <</table>>
=====結果=====
[[File:0382_django_template_tag_div01.jpg]]
==Forms==