0

django リファレンスまたはハッキングで読むことがget_flatpagesできるように、次のように使用できます。

{% get_flatpages as flatpages %}
{% get_flatpages for someuser as flatpages %}
{% get_flatpages '/about/' as about_pages %}
{% get_flatpages prefix as about_pages %}
{% get_flatpages '/about/' for someuser as about_pages %}

したがって、特定のページを取得したい場合は、その URL またはプレフィックスを介して取得する必要があります。これは、テンプレート コードがデータに依存するようになるため、多少ラフですが、特定のフラット ページの URL を変更すると、テンプレートコードも変更する必要があります。

より柔軟なアイデアは、各ページに識別子を含め、たとえば「詳細オプション」セクションで追加できるようにすることです。これにより、その識別子を介してページを参照できるようになります。したがって、次のようなことができます。

{% get_flatpages 'about' as about_pages %}

どちらがより柔軟で、データへの依存度が低く、ページの URL に関係なく、テンプレート コードを変更せずにページの URL を変更できることに注意してください。

フレームワークにそのようなものはありますか? もちろん、このアプリをカスタマイズしたり、サードパーティのアプリを使用したりすることはできますが、これは重要ではありません;-)

他に対処するアイデアはありますか?

4

1 に答える 1

1

いいえ、現在 Django であなたが求めているものに対するサポートはないと思います。フラットページ用にリンクしたドキュメントには次のように書かれています:

フラットページは、URL、タイトル、およびコンテンツを持つ単純なオブジェクトです。データベースに保存したいが、カスタム Django アプリケーションを開発したくない、「About」ページや「Privacy Policy」ページなどの 1 回限りの特別なケースのページに使用します。

これについての私の解釈は、「これは私たちが提供する最低限のものであり、それ以上必要な場合は自分でコーディングする必要があります」です。ページをシンボリック名 (おそらくデフォルトでは URL) で参照できるようにするというあなたの提案はより柔軟であることに同意しますが、開発者に期待するよりも、問題を提起したり、メーリング リストで議論したりする方がよいでしょう。StackOverflow に関するご質問で発生します。

短期的には、事前に構築された CMS のような Django アプリのいくつかを見ることができます。Django-page-cmsは比較的軽量で (それ自体は比較的小さなアプリですが、依存関係がたくさんあります)、目的を達成することができます: 各ページはそのスラッグ (別名 url / name) によって参照されますが、任意の URL の特定のページへのエイリアス/リダイレクトを定義できます。

于 2013-01-04T02:29:40.597 に答える