2013-08-17 26 views
3

我正在創建一個新項目,我想創建一個django模型,該模型將根據另一個變量具有可變數量EmailField s。我試圖創建的是一個House模型,它擁有房子中的所有成員(更具體地說,是他們的電子郵件地址)。看到並非所有的房屋都是相同的大小,有些會有更多的會員。具有可變字段數的Django模型

我希望用戶輸入他們家中的成員數量並讓django在模型上創建相應數量的EmailField s。有沒有簡單的方法來完成這一點?謝謝。

回答

9

因爲Django的模型字段直接鏈接到數據庫表中的字段,所以不可能有多個字段。取而代之的是,有一個外鍵的另一個表:

class House(models.Model): 
    # normal house fields go here 

class EmailAddress(models.Model): 
    email = models.EmailField() 
    house = models.ForeignKey(House, related_name='email_addresses') 

現在,您可以通過訪問所有相關的房子電子郵件:

house = House.objects.get(pk=1) 
house.email_addresses.all() 

ForeignKeydocumentation可能是有用的。

2

否。將電子郵件放在單獨的模型中,並使用ForeignKey將它們鏈接回House。