1

絶望的です、助けてください。食べ物のために働きます:)

次の URL にページがあり、その URL でそれらを検索できるようにしたい (つまり、誰かが特定の URL にアクセスした場合に、そこにあるページをチェックできるようにしたい)。

mysite.com/somepage/somesubpage/somesubsubpage/
mysite.com/somepage/somesubpage/anothersubpage/
mysite.com/somepage/somesubpage/somesubpage/
mysite.com/somepage/somepage/

各ページのスラッグ (つまり、somepage/somepage) を再利用できるようにしたいことに注意してください。もちろん、各スラッグはそのレベルで一意になります (つまり、mysite.com/somepage/other/ と mysite.com/somepage/other/ の 2 つのページを持つことはできません。これらは本質的に同じページになるからです)。これを行う良い方法は何ですか。上記の状況が発生しないように、ページ (「somesubpage」) のスラッグを「スラッグ」と呼ばれるフィールドに保存し、各スラッグをその親ページに対して一意にしようとしました。これに関する問題は、スラッグ (つまり、「somepage」) でページを検索しようとすると、たまたま mysite.com/other/somepage/ と mysite.com/page/somepage/ にページがあることです。 、私のアプリケーションはどちらを取得するかをどのように知ることができますか (両方とも同じスラッグ「somepage」を持っています)。

4

2 に答える 2

2

常に適切なオブジェクトを取得できるように、属性levelも格納する必要があります。parent

階層データを保存する要件は非常に頻繁に発生するため、常にdjango-mpttをお勧めします。これは、階層データをデータベースに格納するための効率的なアルゴリズムのDjango実装です。私はいくつかのプロジェクトでそれを使用しました。基本的に、レベルと親を格納するだけでなく、オブジェクトごとにleftとを格納するため、ツリーとそのすべてのサブ要素を一意に記述することができます。rightプロジェクトのホームページにいくつかの説明リンクがあります。

于 2009-08-29T18:40:10.150 に答える
0

CMS アプリを探しているようです。いくつかの Django ベースの CMSの比較があります。プロジェクトの中心にフル機能の CMS が必要な場合は、DjangoCMS 2またはdjango-page-cmsが最適です。基本的な CMS のユース ケースをサポートしているが、ほとんどの場合邪魔にならない CMS を好む場合は、feincmsを検討する必要があります。

編集: ちなみに、比較ページの CMS のほとんどは、Daniel が言及している django-mptt を使用しています。

于 2009-08-29T19:18:09.120 に答える