2012-01-28 8 views
1

私はカスタム作成のPHP CMSをDjangoに移植しています。 CMSが現在持っている機能の1つに画像アップロード機能があります。私は記事を書いて情報にタグをつけ、写真を選択します。システムに新しいタグと共通のタグを持つ記事に追加された写真がある場合、その記事の写真も提案されます。一致するものがなければ、新しい画像を追加することができる。一致するコンテンツを自動的に提案するDjangoの戦略

これが意味をなさない場合は、記事をBruce Springsteen,The BeatlesLed Zeppelinとタグ付けします。次回はタグThe Beatlesの記事を追加して、最初の記事に追加された画像を使用するように提案してください。

これを実装するには、Djangoに最も適した方法は何でしょうか?私はPhotologueアプリケーションを見て、それを統合しました、そして、それはタグ付けのサポートを持っていることを知っています(ここでの問題は、Photologueがdjango-taggingをサポートするのに対し、django-taggitを使用しているということです)。 1つのアプローチは、ユーザーが記事をアップロードするときにタグを保存した後にフックを実行して、タグを画像に関連付けることです。私はその情報に基づいて管理ツールで画像を自動査定する方法を知りません。

どのようなアイデアやアプローチも非常に高く評価されています。

+0

あなたはモデルの最後でいいですね。適切な画像のクエリーセットを選択することができます。管理ツールウィジェットを表示する方法を知っているだけです。管理ツールは、[django-admin-tools](https://bitbucket.org/izi/django-admin-tools/wiki/Home)を意味しますか? – dokkaebi

答えて

2

これは、あなた自身を構築しなければならないことはほぼ確実です。 Djangoには数多くのライブラリがあります(あなたがすでに見つけたことがあります)。他のソリューションとは異なり、あなたの希望するソリューションに100%役立つものはほとんどありません(一方、Drupalのようなものは100%の方法を得るかもしれません)。あなたはおそらく(ハイレベル)実行する必要がありますどのような

は次のようなものです:

  • 見るために既存の投稿でクエリを引数として現在のタグを取り、ないAJAXビューを作成します。どのタグがそれらの投稿と一致して画像を返すか。あなたのビューに
  • 使用のjQuery/Javascriptを
  • 使用jQueryのページ上<div>を更新し、あなたのビューがここ

を返されたすべての画像を表示するためのタグが追加されるページでAJAXのビューを呼び出すには開始するのに役立つsimilar exampleです。

リクエストのためのヘルパーライブラリとしてdjango-ajaxを調べることはできますが、間違いなく必要ありません。

+0

これを歓迎します。私はこのすべてをDjangoの管理領域内で実行したいので、選択できるものを動的に提案するという点でどれほど柔軟性があるのか​​はわかりません。モデルを再考するかもしれませんが、これらのヒントは役に立ちます - ありがとう! –

+0

ええ、Djangoの管理者は、あなたがやりたいことについて何かにかなりの不断の挑戦を提示します。テンプレートをオーバーライドしてテンプレート変数を[コンテキストプロセッサ](https://docs.djangoproject)に入れることができます。com/en/dev/ref/templates/api /#subclassing-context-requestcontext)、私は管理者の中でこれをやろうとはしていませんでした。このタスクを実行するためのフロントエンドページの設計を検討する価値があります。 –

1

イメージモジュールと他のdjangoモジュール間のフックは、djangoのcontenttypes frameworkを使って実装することができます。これは関連/フックされたオブジェクトを返す便利なインスタンスメソッドも提供します。

関連する問題