Django

Google App Engine で 1.0以上のバージョンのDjangoを使う

先週に投稿したエントリで、Google App EngineではDjango0.96しか使えないようなことを書いたのですが、ちゃんと調べてみると、現在のGoogle App EngineではDjangoの1.1および1.0.2のバージョンも使用できることがわかりました。英語のドキュメントにしか載…

DjangoのTemplateにて辞書の内容を一覧表示する

DjangoのTemplateでは、{% for a in list %}...{% endfor %}を使うことで、リストの内容を順番に処理していくことができます。 それと同じように、ディクショナリに登録されている内容を順番に表示させようと考えたのですが、 Google App Engine のDjangoの…

TODOタスクの状態表示と状態変更機能

前回で、TODOタスクに状態を持たせることができました。今度は、その状態の表示と、状態変化のロジックを実装することにします。まず、TODOタスクの状態変化処理用のメソッドを用意します。/todo/views.py def update_task_status(request): if not request.…

既存データの一括更新

これまでTODOタスクは追加と削除だけができるものでしたが、実際にTODO管理をしようとすると、それがどういう状況なのかを記録したくなると思います。といっても、あまり複雑にするとややこしくなるので、以下の4つの状態をとれるということにします。 未着…

定期的に処理を走らせる

それでは、メールによる締切通知部分を作成しようと思います。まず、締切時にメールを送信する設定になっていて、かつ、締切を過ぎているのにまだメールを送信していないTODOタスクを抜き出します。 now = datetime.datetime.today() now += datetime.timede…

汎用ビューによる更新・削除ページ

前回で、TODOタスクの追加と一覧までは実現できたので、今回からは編集と削除処理を作っていきます。削除処理については、汎用ビューのdjango.views.generic.create_update.delete_objectを使います。利用手順としては、まず、views.pyに削除処理用のメソッ…

Django Applicationを作る

ちょっと意味のあるアプリケーションとして、TODO管理機能を作っていくことにします。Djangoと同じく、以下のコマンドでアプリケーションが生成されます。 manage.py startapp todoこれによりtodoフォルダができますので、中身を確認すると、以下のファイル…

アクセスカウンタの復活とtemplateの継承

app-engine-patchにおいてもModelはGoogleのモデルを使うようなので、前のアクセスカウンタ用のモデルをそのまま流用します。前回からの変更点として、views.pyを新たに生成し、カウンタアップのロジックをここに移動させました。views.py # -*- coding: utf…

app-engine-patchの導入

GettingStartedと、Unleash Django with app-engine-patchの記事を見て、app-engine-patchの使い方を理解しようとするも、分ったような分からないような。やっぱり実際に試してみないとよくわかりませんね。というわけで、やってみます。まず、Downloads app…

Google App Engine上でDjangoを動かす

そろそろなんらかの動きのあるアプリケーションを作りだそうと思ったのですが、このままgoogle.appengine.ext.webappパッケージを使ってゴリゴリと書いていっていいのかとちょっと悩みました。躊躇した点は、以下。 webappパッケージを使い続けると、Google …