2012-12-22 55 views
3

我對Web開發有點新,並且無法理解網站內容的存儲方式。即使看過開源項目,我仍然感到困惑。Django Storing網站內容

可以說我有一個網頁有多個段落,我希望最終能夠通過Django管理頁面進行編輯。現在,我已經爲該頁面設置了觀點,但我不確定應該如何構建模型。

到目前爲止,我有:

from django.db import models 

class content(models.Model): 
    name = models.CharField(max_length=30) 
    last_updated = models.DateField(blank=True,null=True) 
    content = models.TextField() 

「名」是我的段落將被談論和「內容」應該是所有的頁面上的段落。我的問題:內容字段應該存儲在HTML中,還是應該只存儲純文本?如果是純文本,當我將model.content字段嵌入到模板中時,如何添加HTML格式?這難道不是很難嗎?因爲我需要解析純文本才能這樣做?

但是,如果我在內容字段中存儲HTML,在輸入內容時是不是必須使用HTML或在管理頁面中使用WYSIWYG編輯器?

謝謝你的幫助:)

回答

1

在管理中,您可以使用WYSIWIG編輯器,如TinyMCE 這會將內容存儲爲HTML。在渲染時 - 你可以做{{content|safe}}。請致電django-flatpages。它完全符合你所拍攝的內容。

+0

出於好奇,將'flatpages'存儲在數據庫中有什麼好處,而不是將它們作爲靜態頁面留在'/ static /'文件夾中?是否有任何性能優勢,還是隻是減少靜態內容佔用的空間量?對於不會動態更改的內容,如何知道何時應將內容保存到數據庫以及何時將其硬編碼到模板中? – user1431282

+1

靜態內容已作爲django contrib的一部分存在。較小的代碼來編寫和維護。另外,flatpages的重量非常輕。 – karthikr

1

調查django-tinymce。它是一個很好的包,它提供了一個widget與前端表單中的CharFieldmodel field相關聯,以在管理員中顯示爲WYSIWYG編輯器。

是的,它會將文本內容作爲html存儲在數據庫中。