2012-03-14 56 views
1

我建立一個小網站框架,一組很可能有相當多的非結構化頁網站 - 這意味着他們有:編輯非結構化網頁

  • 每頁稍有不同的佈局
  • 很多一次性文本
  • 無/很少產生從模型

內容,我想,它允許客戶通過我的管理界面編輯這些網頁的內容(我使用Django這個項目),b並且要求它們不暴露給頁面HTML,並且只能編輯我已經指定爲字段的頁面部分;例如:

  • 標題
  • 的文本內容,幾個街區
  • 或許預定義的圖像位置
  • PDF文件中的一些方框是需要嵌入

這些字段顯著頁面之間變化。

這個佈局以及這些頁面需要的字段將由開發者指定,所以不需要爲此動態生成很多東西。

到目前爲止,我所擁有的'最好'的想法是在用戶編輯完這些內容並將它們存儲在我的關係數據庫的'Pages'表/模型中,或者只是拋出MongoDB或類似的。

從概念上講,你將如何實現這樣的頁面?如前所述,我使用的是Django,因此歡迎任何針對Django的實現建議,但一般的高層次想法也會很棒。

回答

2

我會實現一個ContentBlock模型,其具有.kind(標題,文本,圖像,PDF)和一個.data,這將容納內容(如果文本)或路徑上傳的PDF /圖像/等。據推測,那麼你會用硬編碼定義的相應塊的網頁 - 我只希望使用硬編碼的蛞蝓,例如,'home-title', 'home-intro', 'about-title', 'about-text', 'about-right-photo'

使用Django的管理界面建議。它更適合編輯同質的非業務邏輯模型。我只是添加一個編輯視圖,爲塊提供適當的表單字段 - html編輯器,文件上傳等。在django管理員中可以做到這一點,但根據我的經驗,這是不值得的麻煩 - 再加上,如果你做自己的編輯視圖,你可以讓它使用與網站其他部分相同的基本模板,這是一種更好的用戶體驗。

+0

聽起來像是一個很好的解決方案。謝謝! – Tom 2012-03-15 14:58:26