Djangoのmodels.pyで別アプリからモデルを呼びたい時

Django

Djangoで別アプリのモデルからimportしたい

Djangoを久しぶりにやった時に、一瞬どうやるか迷ってしまったため備忘録として記載しておきます。

 

結論から言うと、Djangoプロジェクトを起点としてimportするので、以下のようにいつも通りimportしてやれば問題ないのですね。

importの形式

# 個別にimportする場合
from アプリ名.models import クラス名
# まとめてimportする場合
from アプリ名.models import *

 

models.pyで別アプリのモデルをimportしてリレーションを張る時

Djangoでリレーションを張る時

 

カラム名 = models.ForeignKey(モデルのクラス, on_delete=models.CASCADE, verbose_name='説明')

 

実際の設定例

先頭で、別アプリのモデルのクラスであるUserをimportしています。

投稿をしたユーザを判別するためにuser_idカラムを追加し、そこで先程importしたUserモデルを渡しています。

models.py

# 別アプリのUserモデルをimport
from authenticate.models import User

# ブログの投稿のモデルの例
class Post(models.Model):
    """投稿"""
    .
    .
    # user_idカラムを追加
    user_id = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='投稿ユーザ')

 

オススメの関連商品

コメント