Database_Relation


1:N関係


1:N関係マネージャ


逆参照(「commet set」)

  • Article(1) -> Comment(N)
  • article.コメント形式では使用できません.article.commetn set manager
  • が作成されました
    Django ORMは
  • の投稿の中でどれだけのコメントがあるか保証できません
  • 文章はコメントがあるかもしれないし、コメントがないかもしれない.
  • 実際にはArticleクラスにCommentとの関係は作成されていません
  • 参照(「article」)

  • Comment(N) -> Article(1)
  • コメントについては、どのコメントにも自分の参考になる投稿、コメントが必要です.articleなどのアクセス性
  • 実際のForeignKeyFieldもCommentクラスで作成された
  • です.
    article.comment_set.all()
    Out[4]: <QuerySet [<Comment: first comment>, <Comment: second comment>]>
    
    In [8]: comments = article.comment_set.all()
    
    In [9]: for comment in comments :
       ...:     print(comment.content)
       ...: 
    first comment
    second comment
    
    Foreign_key argumetns - 'related_name'
    article.commet_set.all()->1:N関係でのクエリー
    article.comments.all()->M:N関係でのクエリーを推奨
    article = models.ForeignKey(Article, on_delete=models.CASCADE,related_name='comments')
  • ビットに示すようにarticleに変更します.commetn setは使用できません.article.コメントによる
  • 名前を変更する必要がある逆参照の移行
  • User - Article (1:N)

    from django.conf import settings
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE)

    参照ユーザモデル

  • settings.AUTH_USER_MODEL
  • ユーザーモデルの外部キーまたは多対多関係を定義する場合は、
  • を使用します.
  • models.pyでユーザーモデルを参照する場合は
  • を使用します.
  • get_user_model()
  • は、現在アクティブ化されているユーザモデルを返します.
  • によってカスタマイズされたユーザモデルがある場合は、クライアントモデルに戻り、そうでない場合はユーザ
  • に戻る.
  • ユーザーを直接参照しないのはなぜですか?
  • 倉庫でのアプリケーションの実行順序
  • インストールappから順にapp
  • にインポートする.
  • 各アプリケーションのモデル導入
  • models.
  • 、pyではなく任意の場所でユーザーモデルを参照するために使用されます.

    USERとArticleのモデル関係を定義し、移行

  • 空の値を許可しないuser idフィールドは、追加の値
  • を必要とせずに文書に追加されます.
    入力
  • 1およびenter入力
  • は、現在の画面にデフォルト値を設定することを示す
  • である.
    入力
  • 1およびenter入力
  • は、既存のテーブルに追加するuser idフィールドの値を1に設定することを示す.