2016-08-28 6 views
1

2つのケース:peeweeカスタムフィールド - 許容値の定義

1.)整数(0,1,2)しか取ることのできない属性(val)を定義したいと思います。私は、例えば、唯一の特定の文字列を取ることができます属性(val)で[ "いちご"、 "桃"、 "りんご"]を定義したいと思います

class Trinary(Model): 
    """val should accept the values 0, 1 or 2 only""" 
    val = IntegerField() 

2)

class Fruit(Model): 
    """val should accept the values "strawberry", "peach" or "apple" only """ 
    val = ??? 

このような制限をpeeweeを使用して実装することは可能ですか?

ありがとうございました!

マフ

答えて

1

オブジェクトIntegerField等(documentation)クラスであり、サブクラス化することができる。

クラスが

ラウンド他の方法のためのPythonからデータベースへ変換する db_value、 と python_valueを定義する必要があり
class TrinaryField(IntegerField): 
     def db_value(self, value): 
      if value not in [0,1,2]: 
       raise TypeError("Non-trinary digit") 
      return super().db_field(value) # call 
関連する問題