2014-01-16 30 views
0

我正在處理一個小型的Django項目和一個表單,我想捕獲登錄人員的詳細信息。有一個廣播選項,其值爲''學生'或'Industry'。如果選擇學生,我想要顯示兩個輸入框,一個用於'畢業年份',另一個用於'大學名稱'。如果選擇'Industry',我想要2個文本框,一個用於'公司名稱'其他用於'職位'。有條件地在Django中顯示錶單元素

現在,我可以使用jQuery來隱藏不需要的文本框並將changelistener附加到單選按鈕上。然而,有沒有Django的做法呢?現在,我的模型有:

名字 - 常見的兩種情況下 student_or_industry - ChoiceField JOB_TITLE COMPANY_NAME 大學 graduating_year

而且使用簡單的ModelForm,從而導致空值的負載中創建我的表單桌子。我應該爲學生和行業創建一個不同的模型,並將這些模型與外鍵鏈接起來嗎?如果是的話,這與表格有什麼關係?我是否創建多個表單?

由於提前

回答

0

打破這一成2個獨立的模型(學生,工業)將不會是一個問題,它實際上會幫助你,如果你將來需要更多的字段添加到每個單獨的模型。 由於一個人只能屬於1個大學或1個行業,因此您的查詢也沒有多少額外的開銷。 您的初始方法也沒有錯,但您需要考慮如果將來您需要向相關模型添加其他信息(例如,如果您需要添加課程或扇區,那麼您將開始超載初始模型)。