4月 21
このエントリをはてなブックマークに登録 Yahoo!ブックマークに登録

隠蔽するっていうか、viewにごりごり書くのではなくてModelのメソッドで処理してしまおうという話です。このエントリの応用ですね。

import hashlib

class Member(models.Model):
    name = models.CharField(max_length=32)
    passwd = models.CharField(max_length=256)
    def save(self, force_insert=False, force_update=False):
        self.passwd = hashlib.md5(self.passwd).hexdigest()
        super(Member, self).save(force_insert, force_insert)
Modelのsave()メソッドをオーバーライドしています。これで、登録フォームなどからPOSTされたデータをそのままsave()してもデータベース上には暗号化された状態で保存されます。
adminサイトで作成したユーザ情報なんかのパスワードとかも、暗号化して保存してくれます。便利便利。

関連性のあるエントリ:

  1. Djangoのformでカスタムバリデーションをする方法
  2. Djangoで同じモデルのフィールド同士によるフィルタを実行する方法
  3. Djangoのmodelで自分自身に対するリレーション(再帰的なリレーション)を張る
  4. DjangoのフォームでCSSのclassを指定する
  5. Pythonで文字列を暗号化

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
preload preload preload