2009-07-29 20 views
1

CharFieldのブラックリストを指定する方法を教えてください。しかし、私はブラックリストがDjangoの管理パネルでも有効であることを望みます...そうでなければ、私はビューでそれを検証します。Django CharFieldの制限

ブラックリストでは、使用できない値を意味します。私も値のためにユニークを設定しましたが、私はいくつかの文字列を無効にしたいと思います。

おかげで、 マックス

答えて

1

親クラスのsave()メソッドを呼び出す前に、モデルのsave()メソッドとブラックリストに対して挿入する値をオーバーライドします。

(簡体字)のようなもの:

class BlackListModel(models.Model): 
    blacklist = ['a', 'b', 'c'] 

    # your model fields definitions... 

    def save(self, *args, **kwargs): 
     if self.blacklist_field in self.blacklist: 
      raise Exception("Attempting to save a blacklisted value!") 
     return super(BlackListModel, self).save(*args, **kwargs) 

それはすべてのアプリケーションで動作する方法。

0

これは、箱から出しできません。 custom form fieldと書くか、custom admin handlingを追加して管理者レベルの検証を行う必要があります。データベースレベルでそれを行うには、何らかの種類のトリガーとストアドプロシージャを設定する必要があると思われますが、それは私の領域ではないので、他の人に任せます。

関連する問題