2012-04-30 1 views
0

나는 장고에 대해 상당히 새로운 점을 가지고있어서 다른 곳의 데이터를 표시하는 데 익숙합니다.Django 여러 개의 외래 키 또는 하나만 충분합니까?

저는 새로운 프로젝트를 시작하고 Django가 모델 관계를 처리하는 방법에 대해 쿼리합니다 (이 특정 인스턴스에 대해 검색이 많이 안되었습니까). 그리고이를 수행하는 가장 효율적인 방법이 궁금합니다.

나는 3 개의 모델, 사용자 (분명히 : S), 프로젝트 및 보고서가 있습니다. 이제 보고서는 프로젝트의 일부이며 사용자가 수행하지만 프로젝트는 또한 사용자가 소유합니다. 다른 사용자는 다른 사용자의 보고서/프로젝트를 볼 수 없습니다.

Class Report(models.Model): 
    user = models.ForeignKey(User) 
    project = models.ForeignKey(Project) 

또는

Class Report(models.Model): 
    project = models.ForeignKey(Project) 

답변

1

경우 : 내가이 외국 보고서에 대한 키 또는 하나 필요합니까 예 (보고서 1 그것을 로젝트에 연결되어 있기 때문에 예를 들어, 사용자가 PROJECTA 및 보고서 1을 만듭니다, 또한 사용자에 연결되어 있습니다) 보고서는 프로젝트를 통해 사용자와 만 연결됩니다 (즉, 은 프로젝트과 다른 사용자로 보고서를 작성하는 것이 바람직하지 않음을 의미합니다). 그러면 두 번째 것이 더 좋습니다. 사용자는 항상 (report object).project.user 또는 'project__user'과 같은 검색어로 액세스 할 수 있습니다. 첫 번째 보고서를 사용하는 경우 보고서의 사용자 데이터와 프로젝트가 동기화되지 않을 수 있습니다. 이는 앱에 적합하지 않습니다.

+0

그건 제가 생각한 것입니다. 그냥 장고가 그렇게 처리 할 것이라고 생각했습니다. 건배 – IainS