djangoformsを使ってみた
内部のマスタメンテ用にはいいかもしれんが、シンプルすぎて公開には耐えない。でもせっかく動くコードがあるので残しておく。
必要に応じて修飾できそう(ウィジェット — Django v1.0 documentation)。後でもっと勉強する。とりあえず現時点でのコードは以下の通り。
前提条件
urls.py
urlpatterns = patterns('', (r'^hoge/(?P<key>[^\.^/]+)/$', 'hoge.views.detail'), )
views.py
# 必須:Djangoモジュールをインポートする前にあらかじめインポートしておくこと from google.appengine.ext.db import djangoforms from django.http import Http404 from django.shortcuts import render_to_response from hoge.models import Hoge class DetailForm(djangoforms.ModelForm): class Meta: model = Hoge exclude = ['example'] # 表示/編集したくないフィールドがあればここに書く def detail(request, key): if request.method == 'POST': form = DetailForm(request.POST) if form.is_valid: pass # 更新処理、以下省略(w else: o = Hoge.get(key) if o == None: raise Http404 else: form = DetailForm(instance=o) # これだけでフォーム代入完了。すばらしい return render_to_response('detail.html', {'prop_rows': form})
detail.html
<html> <head><!-- 省略 --></head> <body> <h1>Hoge 入力フォーム</h1> <form><!-- formの中、省略 --> <table> {{ prop_rows }} </table> <input type="submit"> </form> </body> </html>