2016-02-29 75 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

相關問題