2011-10-28 55 views
0

我有三個型號:Django - 你能解釋一下嗎?

  1. System_Contact
  2. System
  3. Contact_list

Contact_List模型有兩個字段:contactsys,毫不奇怪,僅僅是一個多對多模型關聯每個系統的聯繫人列表。我有modelForm用於爲系統的聯繫人列表添加新聯繫人:

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

簡單,對嗎?我的困惑是:即使認爲Contact_List模型有很多許多重複contacts(因爲一個聯繫人可以與許多系統關聯),每個聯繫人只在窗體的Select小部件內顯示一次。

爲什麼?

我的意思是,這是我的目的,一個偉大的默認行爲,但我要確保這其實是我可以依靠,而不是一些隨機的錯誤,我已經做到了這恰好工作正確默認行爲現在給我。

+0

重複的聯繫人走在聯繫人列表中的關係,獨特的接觸出來。無法解釋這一點。 –

回答

1

這不是它的默認行爲,而是您的contact_list表單中的選定小部件顯示來自聯繫人表的所有條目。

每一個模型是在數據庫中的表,所以你有3個表:

  • ContactTable - 在表中的每一行都是一個人
  • SystemTable - 在表中的每一行是一個計算機(對於arguements緣故)
  • 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

相關問題