2016-02-29 79 views
0

比方说,我有一个叫做“SysApp”模式。每个系统有5个文件。每个文档具有字段:在Django中设计模型字段的最佳方法是什么?

  • 标题
  • URL到该文件(外部URL)
  • 说明

而不是限定像

  • TITLE_1多个字段,
  • url_1,
  • DESCRIPTION_1,
  • TITLE_2,
  • url_2,
  • description_2 (硬编码方式)

有没有更好的方式来处理这种类型的使用情况?做着

的一种方式是创建一个模型存储每个文档,然后SysApp将引用使用ForeignKey每个文档。不过我还是要创建一个像document_1, document_2等领域也将是相当困难的时候有100多个和SysApp + 3-400文件编辑器来管理。

是否可以管理这些领域,如列表或字典?

谢谢

+1

你的第二个方法是正确的,但不是一个ForeignKey(1对多),你应该调查多对多关系和'FormSet's。 – Selcuk

+0

谢谢@Kjjassy。有一件事我可能没有说清楚。这些文件不太可能被共享。例如'安装文档'它只适用于1个SysApp。在这种情况下,同时使用一个ForeignKey(或M2M)可以简化一些代码,但最终我有大部分都是过时的“文件”项的存储库(无编辑添加一个新的人之前删除链接的文档:( – DSO

回答

1

我想组织你的最佳途径“SysApp - 文件”的关系,假设你所说的每一个文件,涉及到只有一个sysapp,就是用ForeignKey

在这种情况下,你只需要创建2种模式:第一种是SysAppname场,第二个是Document与领域titleurl to filedescriptionforeignkeySysApp。现在你可以创建文档并将它们附加到你想要的sys。所以你不需要指定document_2document_3等字段。

如果您需要将一个文档附加到多个sysapp,请使用ManyToMany而不是ForeignKey

+0

谢谢@ chem1st。我已经把我的评论放在上面了。 – DSO

相关问题