パイソン - ジャンゴ - ORMのカスタムフィールドのchar型

フィールドは、データベースに定義されたタイプverchar CharFieldですを格納するために使用され

char型のフィールドは、以下のカスタムコードが必要です。

FixedCharFieldクラス(models.Field):
    "" "
    カスタムフィールドクラスchar型
    " ""
    DEF __init __(自己、MAX_LENGTH、引数*、** kwargsから):
        self.max_length = MAX_LENGTH
        スーパー(FixedCharField、セルフ).__ init__ (= MAX_LENGTH MAX_LENGTH、引数*、** kwargsから)

    DEF DB_TYPE(セルフ、接続):
        "" "
        フィールドは、チャーのデータベーステーブル生成のタイプを定義し、長さの値指定MAX_LENGTH
        " ""
        復帰'CHAR(%のS') %self.max_length

models.py:

インポートdjango.dbモデル


クラスFixedCharField(models.Field):
    "" " 
    のchar型のクラス定義のフィールドから
    """ 
    DEF __init __(自己、MAX_LENGTH、引数*、** kwargsから):
        self.max_length = MAX_LENGTH 
        スーパー( FixedCharField、自己).__のinit __(MAX_LENGTH = MAX_LENGTH、*引数、** kwargsから)

    DEF DB_TYPE(セルフ、接続):
        "" " 
        フィールドタイプはチャーの生成されたデータベーステーブル、指定された長さ値MAX_LENGTH定義
        """ 
        復帰"をCHAR(%S)「%のself.max_lengthの


クラス人(models.Model):
    インクリメントプライマリキーIDのID = models.AutoField(PRIMARY_KEY = TRUE)#
    名前は= models.CharField(MAX_LENGTH = 32)
    セックス= FixedCharField(= MAX_LENGTH 32、char型の上で定義されたフィールドを使用して、デフォルト=「男」)#
    年齢= models.IntegerField()
    誕生日= models.DateField(auto_now_add =真)

データベースを更新するためのコマンドを実行

 

おすすめ

転載: www.cnblogs.com/sch01ar/p/11285028.html