2011-03-19 5 views
0

모든 가져 오기가 올바르게 작동하는 데 문제가 있습니다. 그들은 정의되기 전에 서로 부르고 있습니다.모델 설명 : 주문 Importo 피하기

match.models :

from player.models import Player 

class Match(models.Model): 
    player = models.ForeignKey(Player) 

player.models :

, 모든 사탕 사과의 잘 작동
class Player(models.Model): 
    #yadda yadda 

from match.models import Match 
class Skill(models.Model): 
    player = ForeignKey(Player) 
    match = ForeignKey(Match) 

. 그러나 나는 플레이어에 모델 메소드를 추가하고 싶었 :

class Player(models.Model): 
    def get_skill(): 
     skill = Skill.objects.filter() 

이제 스킬 플레이어 전에 정의되어 있지 않습니다. 아직 정의되지 않은 플레이어를 가져올 수 있기 때문에 스킬를 이동하면, 그것은 플레이어 (앞서 그 때문에 수입 일치) 일치를 나누기 전에 정의해야합니다.

File "...match/models.py", line 2, in <module> 
    from player.models import Player 
ImportError: cannot import name Player 

아이디어가 있습니다.

저는 모델 메서드를 유지하고 싶습니다. 모든 가져 오기 작업을 수행하는 데는 단서가 없습니다. 나는 스킬을 자체 player.models에서 가져올 수 있다고 생각하지만,이 시점에서는 두통이 될 것이므로 제대로 수행하는 방법을 알고 싶습니다.

답변

2

Lazy Relationships

일치 models.py 모두를 통과 한 후

class Match(models.Model): 
    player = models.ForeignKey('player.Player') 

플레이어 models.py

class Skill(models.Model): 
    player = ForeignKey('Player') 
    match = ForeignKey('match.Match') 

class Player(models.Model): 
    #yadda yadda 

    def get_skill(): 
     skill = Skill.object.filter() 
+0

,이 일했다. 나는 그 중 하나를 시도했다. 많은 감사합니다! – sejje