我有3个相关字段,我正在尝试找出一个显示全部三个表的好方法。 我有Employees,CertificateTypes和Certificates,证书链接Employee和CertificateType。 CertificateTypes基本上是员工可以接收的培训类型,证书是员工在CertificateType中收到的培训。
例如:(一个平行的例子):学生可以获得理学学士学位,员工=学生,证书类型=理学士和证书=文凭。
我希望我的表将所有Employees显示为行,CertificateTypes显示为列,将Certificate expiry date显示为单元格值。
我可以在我的视图中构建一个列表/字典,或者我可以尝试在模板中构建它(我正在查看重新组合模板标记)。什么是最好/最简单的方法?
答案 0 :(得分:0)
要解决此问题,请坚持从视图逻辑中分离演示文稿。实际上没有任何组合的标准手段。 2个带模板逻辑的相关模型。问题或多或少是一个外连接,这是Django选择不支持的操作(参见this question)。
为了回答我自己的问题,我选择将自定义上下文构建为员工,证书密钥,值对的字典。
Context的格式为:
certs_context = {
employee0: [
[
certificatetype0_certificate0,
certificatetype0_certificate1,
],
[
certificatetype1_certificate0,
],
],
}
只要每个员工密钥的证书列表保持相同的证书类型顺序,就可以使用嵌套循环在模板中构建表格。
保持模板/表示逻辑(更多)简单。