저는 장고를 기반으로 한 간단한 CMS를 작성하고 있습니다. 대부분의 콘텐츠 관리 시스템은 하나 이상의 수정 가능 영역이있는 템플릿을 사용하여 고정 된 URL에 고정 페이지를 사용합니다. 편집 가능한 영역을 가지려면 페이지가 필요합니다. 시스템에서 어떤 페이지를 작동 시키려면 URL이 필요합니다.객체/모델을 다른 Django 모델과 연결시키는 방법은 무엇입니까?
문제는 더 이상 "페이지"(플랫 페이지 페이지 등)가 아니라 다른 모델의 인스턴스를 처리 할 때 발생합니다. 예를 들어 제품 모델이있는 경우 편집 가능한 여러 영역이있는 세부 정보 페이지를 만들 수 있습니다.
은 모델에 해당 지역을 구축 할 수 있지만 제 경우에는 여러 모델이 있으며 표시하려는 데이터의 양이 많은 편입니다.
따라서 템플릿 수준에서 CMS를 빌드하고 "페이지"의 인스턴스 또는 사용하는 모델을 기반으로 블록 (편집 가능 영역)을 지정하고 싶습니다.
{% block unique_object "unique placeholder name" %}
그리고 그 한 예에 전달 된 두 개의 인수를 기반으로 "블록"을 찾아 낼 것입니다 :.
나는 아마도 내가이 같은 페이지에서 사용자 정의 템플릿 태그를 덤프 수 있다는 생각을 했어 :
<h1>{{ product_instance.name }}</h1>
{% block product_instance "detail: product short description" %}
{% block product_instance "detail: product video" %}
{% block product_instance "detail: product long description" %}
소리가 잘 들리는 지, 그렇지? 글쎄, 내가 겪고있는 문제는 올바른 블록을 꺼낼 수 있도록 어떻게 영역을위한 "키"를 만드는 것인가? 나는 완전히 알려지지 않은 객체 (페이지 객체, URL, 모델 인스턴스, 무엇이든 될 수 있음 - 심지어는 보트 </fg>
일 수 있음)를 다룰 것입니다.
다른 Django 마이크로 애플리케이션이이를 수행해야합니다. 장고 태그 붙이기로 무엇이든 태그 할 수 있습니다. 어떻게 작동하는지 이해하려고 노력했지만 공백을 그리는 중입니다.
그래서, 첫째로, 나는 화가 났습니까? 그리고 그렇지 않다고 가정하면, 이것은 상대적으로 정상적인 아이디어로 보입니다. 객체 + 문자열을 블록/편집 가능 영역에 연결하려면 어떻게해야합니까?
참고 : 편집은 페이지에서 이루어 지므로 사용자가 영역을 편집하도록 허용하지 않습니다. 나는 관리자에게 어떤 불쾌한 점보도하지 않아도됩니다. 내 궁극적 인 꿈은 세 번째 인수가 콘텐츠 영역의 종류 (텍스트, 이미지, 비디오 등)를 지정하도록 허용하는 것입니다. 이것에 대한 의견이 있으시면 언제든지 읽을 수 있습니다!
현상금을 여는 중입니다. contenttypes를 사용하여 모델을 코딩하는 방법과 템플릿 인스턴스를 객체 인스턴스로 만들고 모델을 찾기 위해 문자열을 만드는 방법을 보여주는 예제가 필요합니다. – Oli
문제 도메인을 이해하는 데 문제가 있습니다. 당신은 분명히 할 수 있습니다 : 당신이 작업하고있는 모델은 무엇이며, 그들이 원하는 관계는 무엇입니까? – John
유일한 모델 핵심은 제 '블록'모델입니다. 하지만 문자열과 일반 객체 인스턴스를 혼합하여 'Block'인스턴스를 식별 할 수 있어야합니다. 예를 들어,'Block' 인스턴스를 CMS의'Page' 인스턴스와 "title"또는'Product' 인스턴스와 "title", "footer"등의 문자열로 연결할 수 있습니다. – Oli