モデル設計一般的な技術と注意事項

  • verbose_nameは、より整然と書いて、最初の引数として使用することができます。
= models.CharField名(' カテゴリ名'、デフォルト= ""、30 = MAX_LENGTH、help_textに= " カテゴリ名"
  • ヌル=真、ブランク= Trueを一般的には、前者前記データベースフィールドが空白缶= Falseに必要なフォームを示しており、NULLにすることができ、同時に起こります。
= models.DateField誕生日(" 生年月日"、null = Trueで、空白=真)
  • on_delete = models.CASCADEを設定する外部キーは、削除(デフォルト)をカスケード表し、
カテゴリ= models.ForeignKey(GoodsCategory、on_delete = models.CASCADE、verbose_name = " 商品类目"
  • クエリ逆にすることができ、外部キーをrelated_name マネージャが命名。
商品= models.ForeignKey(製品、on_delete = models.CASCADE、verbose_name = " 商品"、related_name = " 画像"
  • 各モデルとフィールドverbose_nameに設定されたが、また、各モデルの__str__メソッドを達成しようとすると、簡単な文書管理プロジェクトにしてください。
クラスメタ:
    verbose_name = ' 商品轮播' 
    verbose_name_plural = verbose_name 

デフ __str__ (自己):
     戻り self.goods.name
  • USE_TZがTrue / Falseのかどうかは、当然のことながら、)(django.utils.timezone.now使用しようとする、より良いアプローチは、使用することですauto_now / auto_now_add =真;
add_time = models.DateTimeField(デフォルト= timezone.now、verbose_name = " 添加时间"
  • 同様の方法get_user_modelを使用してモデルの間のデカップリングを達成するために、
get_user_model方法会中找AUTH_USER_MODEL設定去
から django.contrib.auth インポートget_user_modelの
ユーザー = get_user_model()
  • ユニークなパラメータのユニークな制約」を追加します。
order_sn = models.CharField(" 订单编号"、MAX_LENGTH = 30、ヌル= Trueの場合、空白=真、ユニーク= 真)

クラスのMeta:
    verbose_name = ' 用户收藏' 
    verbose_name_plural = verbose_name 
    unique_together =(" ユーザー"" 商品"
  • MySQLのデータベースのストレージエンジンはINNODBに設定されてください。
" OPTIONS ":{ " init_command "" default_storage_engine = INNODBを設定します。"

 

おすすめ

転載: www.cnblogs.com/echo1937/p/11291874.html