2013-12-17 18 views
0

我現在正在開發一個大型django項目。想知道如何在django中設計這個

巨大topicportal許多topiccenters圖書和其他媒體簡介和作者簡介和普通用戶的配置文件誰也有作者簡介..

現在我要做的就是:

一個Django應用程序,模板文件夾像往常一樣,現在的模板數量正變得巨大,因爲我創建模板..

我從來沒有經歷過有一個項目中的多個應用..

可有人請如果那是什麼告訴我我做得很好,或者如果我應該去多個應用程序?

或者如果我以不同的方式提出:在一個項目中有多個應用程序何時有意義?提前

回答

2

Django的

感謝由茁壯成長在具有多個應用程序。 1用戶註冊的應用程序,1個應用程序的配置文件,1個應用程序的評論,1個應用程序的博客帖子等等。

正如你所指出的,做一切應用程序將迅速導致混亂。 Django的最佳方法是創建許多非常特定的應用程序。這也可以讓你有更多的應用程序,你可以在其他項目中重用,如果你願意的話。

Django項目有幾十種可能的「結構」。我會選擇最模塊化的方法。對於每一項功能,只要問問自己:這是否屬於另一個應用程序?如果答案是否定的,最好爲它創建一個單獨的應用程序。

例如,可以在多個網站上使用相同的博客帖子應用程序,您只需更改模板以使其適合頁面的新佈局/設計。所有的邏輯應該大致相同。博客文章的邏輯不應與查看個人資料或其他內容的邏輯相關聯。

示例:註釋應用的模型看起來是這樣的:

from django.db import models 

from profile.models import Profile 
from blog.models import Blog 

class Comment(models.Model): 
    user = models.ForeignKey(Profile, related_name='comments') 
    blog = models.ForeignKey(Blog, related_name='comments') 
    message = models.CharField(max_length=200) 
+0

謝謝,非常好的指導,我想知道,因爲所有的車型都在聯繫,不要我如果我將它們分成多個應用程序,就會破壞關係? – doniyor

+0

那麼您可以像導入同一個應用程序一樣輕鬆地從其他應用程序導入模型,我將使用快速示例更新答案 – EWit

+0

您可以創建'不同應用程序模型之間的ForeignKey'不要小心不要產生週期(例如應用程序A取決於B,這取決於A,...);如果你不小心,它們不僅會創建一個導入循環,它們也常常是過度複雜的模式的標誌...... – sk1p

1

你可以有核心的應用程序不依賴別人的應用程序(它很可能會像)

    與有用的東西核心模板視圖和模型(
  • 賬戶的認證模板和模式
  • 工具應用
  • 核心應用

和 「應用」 的應用程序,其使用上述

  • topiccenter1 - 專用模板,視圖和模型
  • topiccenter2 - 專用模板,視圖和模型

一個很好的結構開始與來自「Django兩勺」的模板 https://github.com/twoscoops/django-twoscoops-project

「thank you你非常好的指導。我想知道,因爲所有的模型都有關係,如果我將它們分成多個應用程序,不要銷燬關係? 「

你應該能夠跨應用模型劃分 - 閱讀:

Define ManyToMany relation in another application in Django

Django relationships between apps: How to keep apps separate?

+0

謝謝大家,非常有用的指導 – doniyor