これを達成するための最良の方法を見つけようとしています。私はかなりうまくいったDjangoプロジェクトを作りました。意見:このコードをdjango appに入れる場所:
ユーザーがページ(ページとモジュールはこのアプリのモデルです)に管理者として残しておくことができる多数の事前コーディングされたモジュールがあります(サイドリンク、広告、常時連絡先)。
新しい要件では、内部リンクのモジュールを同じウェルに挿入する必要があります。これらのリンクは、他のモジュールと同じ方法でページに関連付けられているわけではありません。それらは別々の多対多結合です。つまり、すべてのページにわたって1つのリンクを再利用できます。
テンプレート擬似コードは次のとおり
if page has modules:
loop through modules:
write the pre coded content of module
リンクモジュールと同一ウェル内にする必要があるため、私はリンクのプレースホルダのスラグと「リンクプレースホルダモジュール」を作成しています。
新しい擬似コードは次のとおりです。リンクについては、この出力を書き込むのに最適な場所がどこにあるか
if page has modules:
loop through modules:
if module.slug is "link-placeholder":
loop through page.links and output each
else:
write pre-coded module
私の質問はありますか?私はそれを見ると、私のオプションは以下のとおりです。
- は(簡単ですが、種類の乱雑取得 - コードは素晴らしく、端正である)テンプレートに入れての構築
- あるページモデルで機能を構築します「リンクのプレースホルダが検出された場合page.get_internal_link_ouutputが。基本的に、これは内部リンクモジュールの出力を作成し、印刷し、照会う)と呼ばれる。
- カスタムテンプレートタグで同じことを行います。
私は2に傾いていますまたは3、それはそれを行うには適切な場所のようには思われません。私はフレームワークが本当に好きですが、ちょっとdjangoアプリにコードを入れるのに最適な場所については混乱しています。
アドバイスを事前にいただきありがとうございます。