私はDjangoベースのシンプルなCMSを書いています。ほとんどのコンテンツ管理システムは、1つまたは複数の編集可能な領域を持つテンプレートを使用して、固定URLに固定ページを置くことに依存しています。編集可能な領域を作成するには、ページが必要です。システムがどのページを処理するためには、URLが必要です。 オブジェクト/モデルを別のDjangoモデルから無関係にリンクするには?
「ページ」(フラットページページなど)ではなく、別のモデルからのインスタンスを扱うことがなくなったときに問題が発生します。たとえば、製品のモデルがある場合、複数の編集可能な領域がある詳細ページを作成することができます。
私の場合、いくつかのモデルがあり、表示したいデータの量にばらつきがあります。したがって、テンプレートレベルでCMSを構築し、「ページ」のインスタンスまたは使用するモデルに基づいてブロック(編集可能領域)を指定する必要があります。
{% block unique_object "unique placeholder name" %}
そして、それは一例に渡された2つの引数に基づいて「ブロック」を見つけるだろう:。
は、私は多分、私がこのようなページにカスタムテンプレートタグをダンプすることができないという考えを持っていました:
<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マイクロアプリケーションでこれを行う必要があります。あなたはDjangoタグで何かをタグ付けすることができます。私はその仕組みを理解しようとしましたが、私は空白を描いています。
まず、私は怒っていますか?そして私がそうではないと仮定すると、これは比較的賢明なアイデアのように見えますが、オブジェクト+文字列をブロック/編集可能領域にリンクするにはどうすればよいですか?
注:編集はオンザページで行われるため、ユーザーがゾーンを編集できるようにするための実際の問題はありません。私は管理者の中で逆のジャンボをする必要はありません。私の最終的な夢は、これがどのような種類のコンテンツ領域(テキスト、イメージ、ビデオなど)を指定するために3番目の引数を許可することです。これに関するコメントがあれば、私はそれらを読むことができます!
賞金を稼ぐ。私はcontenttypesを使ってモデルをコーディングする方法の例と、templatetagをオブジェクトインスタンスにする方法と、モデルを見つけるための文字列を示す例が必要です。 – Oli
問題のドメインを理解できません。あなたは、あなたが働いているモデルは何ですか?そして、彼らの希望する関係は何ですか? – John
問題の唯一のモデルコアは私の 'ブロック'モデルです。しかし、私は文字列と汎用オブジェクトのインスタンスを組み合わせて 'Block'インスタンスを識別できる必要があります。たとえば、 'Block'インスタンスをCMSの' Page'インスタンスに、 'title'や' Product'インスタンス、 'title'、' footer "などとリンクすることができます。 – Oli