2011-10-28 5 views
0

나는 세 가지 모델이 있습니다장고 - 설명해 주시겠습니까?

  1. System_Contact
  2. System
  3. Contact_list

Contact_List 모델은 두 개의 필드가 있습니다 contactsys가와, 당연한 일로, 연관 단지 manyToMany 모델입니다 각 시스템에 대한 연락처 목록. 오른쪽

class Add_Contact_Form(ModelForm): 
     class Meta: 
      model = Contact_List 
      fields = ('contact',) 

간단한 : 나는 접촉의 시스템의 목록에 새 연락처를 추가하기위한 modelForm 있나요? 내 혼란이 있습니다 : 심지어 Contact_List 모델은 많은 많은 중복 contacts (하나의 연락처가 많은 시스템과 연관 될 수 있기 때문에)이 있다고 생각했습니다. 각 연락처는 양식의 Select 위젯 내에 한 번만 표시됩니다.

왜?!

내 말은, 이것은 내 목적을위한 훌륭한 기본 동작이지만, 실제로는 이 맞는지 확인하고 싶습니다. 기본 동작은 내가 할 수있는 임의의 오류가 아니라 단지 일을합니다. 지금 나를 위해.

+0

중복 된 연락처가 들어가 접촉 테이블에서 연락처 목록이 있음을 의미 고유 연락처 나올 . 설명 할 수 없어요. –

답변

1

기본 동작이 아니기 때문에 contact_list 양식의 선택 위젯이 연락처 테이블에있는 모든 항목을 표시하고 있습니다.

모든 모델은 데이터베이스의 테이블이다, 그러므로 당신은 3 개 테이블이 :

  • ContactTable - 테이블의 모든 행은 컴퓨터가 - 테이블의 모든 행은 사람
  • SystemTable은 어디
  • ContactListTable (가지 인자를 위해) - 모든 행이 당신이 뭘 하려는지 경우 시스템 및 사용자

의 목록 간의 매핑, 당신은 FO이 있어야합니다 llowing가 :

class Contact(models.Model): 
    name = ... 

class System(models.Model): 
    type = ... 

class ContactList(models.MOdel): 
    system = models.ForeignKey(System) 
    contacts = models.ManyToManyField(Contact) 

이것은 ContactList 테이블의 모든 행이 시스템 테이블에서 특정 시스템 사이의 관계와

+0

OOoohh ..... * 이마를 때린다 * 물론! 나는 그것을 알아야했다. 도와 주셔서 감사합니다! – Garfonzo

관련 문제