我正在使用Django構建一個webapp,這將用於跟蹤人員和工作/演出空缺。我們試圖幫助的人的類型是不同的,但人們可能不止一個類別。如何在重疊項目中構造Django中的表格
舉一個更具體的例子,讓我們有演員,歌手,舞者。我可以設置三個表格:
class Actor(models.Model):
name = models.TextField(max_length=100)
dob = models.DateField()
email = models.EmailField()
number = models.TextField(max_length=15)
sex = models.TextField(max_length=1)
dramatic = models.BooleanField()
comedic = models.BooleanField()
height = models.DecimalField(max_digits=3, decimal_places=2)
weight = models.DecimalField(max_digits=5, decimals_places=2)
class Singer(models.Model):
name = models.TextField(max_length=100)
dob = models.DateField()
email = models.EmailField()
number = models.TextField(max_length=15)
sex = models.TextField(max_length=1)
style = models.TextField(max_length=20)
range = models.TextField(max_length=50)
class Dancer(models.Model):
name = models.TextField(max_length=100)
dob = models.DateField()
email = models.EmailField()
number = models.TextField(max_length=15)
sex = models.TextField(max_length=1)
style = models.TextField(max_length=20)
這將是非常好的,因爲一長串的原因,能夠唯一識別人。如果我在sql中這樣做,我會有一個People
表,其中我存儲了名稱,dob等信息。然後將包含PersonId
的表作爲外鍵和所有actor的特定屬性。然後,我會創建一個視圖,讓我可以查看連接的數據。
但是,我也希望用戶能夠以單一形式輸入歌手的信息。即不必創建一個人,然後一旦他們填寫了表格person
,請填寫另一個表格,將該人員添加爲歌手。
所以,畢竟,我的問題是:有沒有辦法設置Django,以便我可以有一個表單寫入多個表,並從多個表中返回信息,如視圖?如果我不能,那麼構建這樣的東西的最好方法是什麼?
即使指針正確的方向將不勝感激。我甚至不確定谷歌有什麼合適的條款。
謝謝。我知道我不能成爲第一個有這個問題的人。 –