2011-10-27 22 views
6

djangoカスタムプロパティ設定ツールでこれを行う方法はありますか?Djangoモデルフィールド。カスタムフィールド値設定ツール

class MyModel(models.Model): 
    myfield = models.CharField(length = 250) 

    @myfield.setter 
    def set_password(self, value): 
     self.password = encrypt(value) 
+1

ジェームズ・ベネットによって、この記事はあなたのHOWTOに良いアイデアを与えるhttp://www.b-list.org/weblog/2006:

instance.set_password('my_pw') 

あなたはセッターを定義するために@propertyを使用することができます/ aug/18/django-tips-using-properties-models-and-managers/ –

+0

related/dupe:http://stackoverflow.com/questions/2898711/django-model-fields-getter-setter#11108157 – Matt

答えて

1

あなたは本当には、モデルを保存するに値を設定しますので、save()法(OT使用pre_save信号)をオーバーライドすることをお勧めします。

+0

はい、知っている。しかし、私はプロパティだけに興味があります。 –

1

メソッドに問題がありますか? http://docs.python.org/library/functions.html#property

### Pasted from docs 

class C(object): 
    def __init__(self): 
     self._x = None 

    @property 
    def x(self): 
     """I'm the 'x' property.""" 
     return self._x 

    @x.setter 
    def x(self, value): 
     self._x = value 

    @x.deleter 
    def x(self): 
     del self._x 
+0

申し訳ありませんが、純粋なクラスプロパティについてです。 djangoモデルではありません。 –

+0

あなたは別のプロパティを持つことができると思います。しかし素晴らしいアイデア。 +1!あなたが解決策を見つけたら教えてください。 –

関連する問題