2012-12-22 2 views
3

웹 개발에 익숙하지 않고 사이트 콘텐츠 저장 방법을 이해하는 데 어려움이 있습니다. 오픈 소스 프로젝트를 본 후에도 여전히 혼란 스럽습니다.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을 저장하면 콘텐츠를 입력하거나 관리 페이지에서 WYSIWYG 편집기를 사용할 때 HTML을 사용해야하지 않습니까?

어떤 도움 : django-tinymce

답변

1

admin에서는 TinyMCE 과 같은 WYSIWIG 편집기를 사용하여 콘텐츠를 HTML로 저장합니다. 렌더링하는 동안 {{content|safe}}을 할 수 있습니다.

django-flatpages을 살펴보십시오. 그것은 당신이 쏘고있는 것과 정확히 일치합니다.

+0

'/ flat /'폴더에 정적 페이지로 남겨 두는 것과는 달리 데이터베이스에 'flatpages'를 저장하면 어떤 이점이 있습니까? 성능상의 이점이 있습니까 아니면 정적 컨텐츠가 차지하는 공간을 줄이는 것입니까? 동적으로 변경되지 않는 콘텐츠의 경우 콘텐츠를 데이터베이스에 저장해야하는 시점과 템플릿에 하드 코딩해야하는 시점 사이의 경계를 어떻게 알 수 있습니까? – user1431282

+1

정적 콘텐츠는 이미 장고 contrib의 일부로 존재합니다. 적은 코드로 작성하고 유지 관리합니다. 또한 플랫 페이지는 매우 가볍습니다. – karthikr

1

봐 주셔서 감사합니다. 프런트 엔드 용 양식에 CharFieldwidget을 연결하고 관리자에게는 WYSIWYG 편집기로 표시되는 model field을 제공하는 좋은 패키지입니다.

그리고 네, 텍스트 콘텐츠를 html로 데이터베이스에 저장합니다.