day83-DRF

ベーステーブルの役割(継承)

クラスBaseModel(models.Model):
    CREATE_TIME = models.DateTimeField(verbose_name = ' 作成時間'、auto_now_add = 真)
    is_delete = models.BooleanField(verbose_name = ' 削除'、デフォルト= False)が
     クラスのMeta:      
        抽象的な = Trueの                    ありModelクラス属性データベースの移行は、テーブルを生成するために完了しません


クラス公開(BaseModelを):
    名前 = models.CharField(= verbose_name 発行者名、MAX_LENGTH = 32 
    アドレス = models.CharField(= verbose_name "アドレス'MAX_LENGTH = 64 
    電話 = models.CharField(verbose_name = ' 電話'、= 32 MAX_LENGTH)

 

静的なメディアファイルの設定(画像のパス)

settings.py:

MEDIA_URL = ' /メディア/ ' 
MEDIA_ROOT = os.path.join(BASE_DIR、' メディア' 

models.py:

クラスの著者(BaseModel):
    名前 = models.CharField(verbose_name = ' 作者'、MAX_LENGTH = 32 
    アイコン = models.FileField(upload_toの= ' アイコン'、デフォルト= ' アイコン/ icon.jpg '往路とデフォルトパス 
    電話= models.CharField(verbose_name = ' 電話'、= 32 MAX_LENGTH 

他のカスタムクラスモデルの表示フィールド:
@Property 
DEFのauthor_detail_list(自己):
    author_detail_arr = []
     のための著者self.authors.all():
        author_dic = {}       
        author_dic [ ' アイコン' ] = settings.MEDIA_URL + STR(著者.icon)        #1 author.iconオブジェクトタイプ、シリアル化しない
        author_detail_arr.appendを(author_dic)
     リターン author_detail_arr

 

外部キーフィールドモデルのテーブルを処理する方法

外部キープロセス:

 1.リバース・クエリ:related_name = XXX 
 
2.表関係(db_constraint + :on_delete)
    db_constraint = データベース論理決意操作なし偽解離したデータベース、すなわち、しかし操作は、論理データベースORMによって決定されます
    on_delete = デフォルトのカスケード削除のでmodels.CASCADE削除をカスケード接続する、多くのテーブルへの多くは、記述する必要はありません
    on_delete = models.SET_NULL、ヌル= Trueの場合、削除する場合、外部キーフィールドが空である
    on_delete = models.SET_DEFAULT、=デフォルト0削除します外部キーフィールドが0のとき
    on_delete削除、外部キーフィールドが処理されていない場合= models.DO_NOTHING  
ケース:
クラス
AuthorDetail(BaseModel): CHOICE_SEX = (0、' M ' )、 1、' 女性' 年齢 = models.IntegerField(verbose_name = ' 年齢' 性別 = models.IntegerField(verbose_name = ' 性別'、選択肢= CHOICE_SEX、デフォルト= 0) 情報 = models.TextField(verbose_name = ' 個人情報' の著者 = models.OneToOneField(verbose_name = " 著者'=' 著者'db_constraint = Falseを、on_delete = models.CASCADE、related_name = ' 詳細"

 

おすすめ

転載: www.cnblogs.com/klw1/p/11361517.html