2014-12-06 93 views
1

我對Django相當新,已經完成了前面的教程,並回到前面,我正在創建自己的網站。Django應用程序範圍問題

但是,目前有兩個問題阻止了我的進展。作爲背景:我是一名企業Java開發人員,所以我熟悉數據庫設計,外鍵和實體/模型範圍的重要性。另外,我使用php和mysql創建了網站,因此很熟悉包括頁眉/頁腳/菜單等。由於Django使用模板繼承來「包含」頁面,所以切換到Django很困難,部分原因是因爲這一點,包括每個頁面中的每個頁腳/頁眉/菜單。

對於這些問題,想象別人誰喜歡重新創建YouTube網站和Django(只是假設 - !?誰也無論如何要做到這一點)

  1. 一個如何定義應用範圍是什麼?我閱讀了多個來源(包括django網站),應用程序應該非常小,在我們的例子中可能是:評論應用程序,視頻上傳應用程序,推薦的視頻應用程序等。但是 - 在我看來 - 評論應該有一個外鍵視頻和外鍵給用戶。如果有人設計評論應用程序,那麼如何解決這些外鍵約束/依賴關係,因爲他們需要指向不同的應用程序?或者,也許,如何應用範圍的應用程序?

  2. 與問題1相關,關於模板...爲單個應用程序設計視圖和模板並不是一個真正的問題(但)。但是,如何將多個應用程序結合在一起。例如,可以創建一個「家」應用程序,其中包含菜單,頁眉,頁腳,登錄等。但這意味着其他應用程序(如評論)需要擴展該視圖,從而爲家庭應用程序創建另一個依賴項。如何在django中做到這一點?

請注意,我並不尋找完整的代碼 - 儘管代碼片段可能有助於解釋這些概念 - 但這些問題更具理論性。

+0

很高興知道我們不必擔心跨應用程序的外鍵。所以對於這個問題:我們應該如何確定應用範圍? – GreenAsJade 2014-12-06 10:42:28

回答

0

你有點過分想這個。一個應用程序實際上只是一個方便的代碼分組。沒有什麼能夠阻止應用程序在另一個應用程序中擁有模型的外鍵:實際上,這或多或少是必需的,特別是在鏈接到用戶的情況下,因爲它們是由contrib.auth應用程序提供的。

至於模板,這不是專門處理應用程序,而是需要從多個位置收集數據的任何模板。通常的做法是使用自定義模板標籤 - 可能是inclusion tags - 來查詢和呈現數據。