2017-02-05 8 views
0

私は2つのファイルに2つのDjangoのモデルがあります。しかし、これは円形の輸入につながる防ぐ円形輸入

parent.py

from child import Child 
from django.db import models 

def Parent(models.Model): 
    name = models.CharField() 

    def createChild(self): 
     return Child() 

child.py

from parent import Parent 
from django.db import models 

def Child(models.Model): 
    parent = models.ForeignKey(Parent) 

をこれを防ぐためにこれを整理するより良い方法はありますか?

+0

インポートループを避けるために同じファイルに置くとどうなりますか?彼らはとにかく緊密に結合している。 – byxor

+0

私はそのようなオブジェクトのうち約6個を持っているので、パッケージ全体を含む巨大なファイルになるでしょう。 – nven

答えて

2

これは明示的にin the documentationに記載されています。モデルをインポートする必要はありません。外部キーのターゲットとして "app_name.ModelName"の形式の文字列を使用します。

def Child(models.Model): 
    parent = models.ForeignKey("parent.Parent") 

また、Childを明示的にParentから参照する必要はありません。おそらく、親から子を作成するときは、親を参照する子が必要です。あなたはself.child_set.create()をやるでしょう。

+0

'self.child_set.create()'に関する2番目のコメントを教えてください。 – nven