3

이것은 아마도 db 디자인 문제 일 것이지만 더 잘 이해할 수는 없습니다.전달 선언 - 장고에 관리자 페이지가 없습니까?

class User(models.Model): 
    name = models.CharField(max_length=40) 
    # some fields omitted 
    bands = models.ManyToManyField(Band) 

class Band(models.Model): 
    creator = models.ForeignKey(User) 
    # some fields omitted 
    name = models.CharField(max_length=40) 

그러니까 기본적으로, 나는 밴드 개체와 많은 관계로 많은이있는 사용자 개체를 가지고

: 여러 가지 중에서도, 나는이 모델이있다. 이 트위스트는 특수 편집 기능을 사용하기 위해 사이트의 밴드를 "만든"특수 사용자를 원한다는 것입니다. 그래서 나는 앞으로 나아 갔고, 창조주라고 불리는 ForeignKey를 추가했다. Band가 사용자의 소스에서 왔기 때문에 코드를 실행할 수 없습니다. 그래서 나는 앞으로 class Band(models.Model): pass이라고 선언했다. 슬프게도, 이것은 지금 밴드가 장고 관리자 (Bands 모델은 거기에있다, 그것은 단지 편집 될 수 없다)에 어떤 인터페이스 요소도 나타나지 않는 유일한 모델이기 때문에 이것은 좋은 생각 인 것처럼 보인다.

제 질문은이 작업을 제대로 수행하기 위해 모델에서 어떤 변경을해야합니까? (있는 경우)

답변

12

참조 : http://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey 말한다 :

아직 정의 , 당신은 오히려 모델의 을 이름을 사용하지 않은 모델의 관계를 만들어야하는 경우 모델 객체 자체보다 :

class Car(models.Model): 
     manufacturer = models.ForeignKey('Manufacturer') 
     # ... 

class Manufacturer(models.Model): 
     # ... 
+0

감사합니다. 장고 FTW! –