2011-11-10 3 views
0

モデルクラスのプロパティの1つが生成された値です。 このように、ユーザーが自分自身の不透明な文字列を挿入するのを制限したいと考えています。 ユーザーが自分のマネージャメソッドの1つを使用してインスタンスを作成するようにします。 私のユースケースでユーザーを防ぐ方法はありますか?それをやってのクライアントがデフォルトのinitメソッドを使用してモデルクラスのインスタンスを作成しないようにするにはどうすればよいですか?

答えて

0

一つの方法は、実際にフィールドに別の名前を与え、そして唯一のプロパティを経由して、それを暴露することによって、「非表示」に価値のようになります。

class MyClass(models.Model): 
    _real_field = models.CharField(max_length=10) 

    @property 
    def fake_field(self): 
     return self._real_field 

この方法では、あなたの中にreal_fieldを設定することができますマネージャーが、fake_fieldの存在のみを文書化します。

これの欠点は、クエリで_real_fieldを使用する必要があることです。

関連する問題