matsuyuta's Room
データの活用を考える
-
コメントは受け付けていません。
データの追加、編集処理、HTMLでいうFormの画面で、いくつか分かったことがあるので以下に記す。
前回の「○ 賛否両論 ×(ベータ版)」では、
唯一のデータ編集画面「ユーザー情報の編集」で、
編集のHTMLのFORM画面に、更新前のデータを表示させることができなかった。
表示させても、submitするとデータが追加されてしまい更新処理ができてなかった。
泣く泣く、Djangoを使わず処理した。
DjangoがGAEバージョンなので、あきらめていた。
だが、今回、試行錯誤した結果、Django使って、更新処理を行う方法が分かった。
本来、分かって当たり前なのかもしれないが、
やっと・・・
やっとわかった!
こんなかんじ↓↓↓# モデルクラス class UserData(db.Model): user = db.UserProperty(required=True,auto_current_user=True) name = db.StringProperty(required=True,verbose_name='※名前') presentation = db.TextProperty(verbose_name='自己紹介') del_flg = db.IntegerProperty(default=0,verbose_name='削除フラグ') add_date = db.DateTimeProperty(auto_now_add=True,verbose_name='作成日時') update_date = db.DateTimeProperty(auto_now=True,verbose_name='更新日時') def __unicode__(self): return self.name # DjangoFormを使うためのフォームクラス class UsrForm(djangoforms.ModelForm): class Meta: model = UserData exclude = ['user','del_flg'] # ハンドラー class UsrEditHandler(webapp.RequestHandler): ~~~(省略)~~~ def post(self): user = users.get_current_user() if user: q = db.GqlQuery("SELECT * FROM UserData WHERE del_flg = 0 AND user = :1", user) q = q.get() <span style="color: #ff0000;">ここ!</span> form = UsrForm(<span style="color: #ff0000;">instance=q</span>,data=self.request.POST) if form.is_valid(): data = form.save() data.put() self.redirect('/user') ~~~(省略)~~~そのほかには、
データ更新画面で入力ミスをした時のパラメータ受け渡しを完全に忘れていた。
たとえば、
「 http://ctchandrls.appspot.com/—-/—?id=XXXXX 」
のように、GETで「id」パラメータを渡している時は、
入力ミスをして、更新画面に戻った時にも、「id」パラメータを渡しておかないと
エラーになってしまう。
テストしたときに気づけばいいのだが、
入力ミスのテストは、少ししかやってないし、
やる気もあまりなく、公開直前に気付いた。
以上。
私がつくったアプリ↓
協調型意思決定支援システム「○ 賛否両論 ×(ベータ版)」http://sanpiryoron.appspot.com/
協調型プロジェクトタスク管理ツール「キャッチ&リリース(ベータ版)」
http://ctchandrls.appspot.com/




