2011-07-18 33 views
0

我有3個相關的字段,並且我正試圖找出構建顯示全部三個表格的好方法。 我有僱員,證書類型和證書,證書鏈接僱員和證書類型。 CertificateTypes基本上是員工可以接受的培訓類型,Certificates是Employee在CertificateType中接受的培訓。例如:(一個平行的例子):學生可以獲得理學學士文憑,員工=學生,CertificarteType =科學學士和證書=文憑。Django - 顯示跨越3個模型的表格

我希望我的表能夠將所有員工顯示爲行,證書類型顯示爲列,證書過期日期顯示爲單元格值。

我可以在我的視圖中構建一個列表/字典,或者我可以嘗試在模板中構建它(我正在查看重新分組模板標記)。什麼是最好/最簡單的方法來做到這一點?

回答

0

爲了解決這個問題,堅持從視圖邏輯分離演示文稿。實際上,沒有任何標準方法可以將> 2個相關模型與模板邏輯相結合。這個問題或多或少是一個外連接,這是Django選擇不支持的操作(請參閱this question)。

要回答我自己的問題,我選擇將自定義上下文構建爲員工,證書密鑰,值對的字典。

上下文有格式:

certs_context = { 
    employee0: [ 
     [ 
      certificatetype0_certificate0, 
      certificatetype0_certificate1, 
     ], 
     [ 
      certificatetype1_certificate0, 
     ], 
    ], 
} 

只要爲每個員工密鑰的證書列表保持相同的證書類型順序,很容易構建使用嵌套循環的模板的表。

保持模板/表示邏輯(更多)簡單。