2012-11-01 2 views
1
  1. 왜 재귀 관계를 만들겠습니까?
  2.  
        aField = models.ForeignKey('self') 
    
  3. 위와 동일합니까?
 
     class aClass(models.Model): 
     aField = models.ForeignKey('aClass') 
+1

첫 번째 질문을 이해하지 못합니다. "내가 왜 만들 겠어 ...". 우리는 이유를 모른다. – sergzach

+1

1. 모델 개체가 일종의 관계를 형성해야하는 경우 즉, 트리에서 루트 옆의 모든 개체에 부모가 있어야합니다. – Bula

답변

5
  1. 당신은 동일한 모델 구조를 가진 부모와 자식 노드를 가지고 싶습니다 재귀 관계를 만들어야 할 수도 있습니다 . 예를 들어, 당신은 텍스트, 데이터, USER_ID와 의견이있는 경우 : 나는 (당신이 그것을 테스트하기 위해 시도 할 수 있습니다) 네 생각

    class Comment(models.Model): 
        text = models.TextField() 
        create_date_time = models.DateTimeField() 
        parent_comment = models.ForeignKey('self') 
    
  2. 를하지만 좋은 모양이 아니다. 클래스 이름을 변경하면 괄호 안에 문자열 값을 변경해야합니다. '자기'를 사용하면 두통이 없습니다.