2009-06-17 7 views
0

私は、ajaxリクエストのハンドラなど、contribコメントアプリを基にして構築したコードをいくつか開発しました。このコードは別のアプリケーションにあり、「comments2」と呼ぶことができます。プロジェクトのURL設定は、/コメントへのすべての呼び出しがこのアプリのビューに向けられるように構成されています。これは問題なく動作します。一般的なアプリケーション内でテンプレートタグを実装する - django

非常に最近、私は不適切とフラグされたコメントを表示する新しいページを作成しました。

私は封筒テンプレートタグを書くことによって最もうまくできたと思って、それを書きました。

{% display_flagged_comments 'market' %} 

このタグは、メインアプリの関連テンプレート内に配置されています。

上記のコードに見られるように、コメント2のアプリケーションが一般的なままになるように、コメントが属するモデル(この場合はマーケット)を渡します。

私は上の指導が必要であることをここに3つの問題があります。

まず、私は引用符の内側にいるモデル引数(「市場」)はコードがやや少ないエレガント作ることを感じます。コードでは、引数がモデルに変換されます。/コメント持つすべての要求がアプリをコメント2するように指示されているので、私はこのページのために別のURLを考案する必要がある、

#template tag 
def show_comments(modelname): 
    model = ContentType.objects.get(model=modelname) 
    ... # get comments and return them 

セカンド(それがメインの内側に座っていますapp)(例えば、/ managecomments)。私はそれもやっかいなことをしています。

第3に、正しいパスをたどっているのか、それとも私がやろうとしていることを実装するためのよりよい方法があるかどうかを知りたい。

ありがとうございます。

答えて

0

ContentTypeManagerは、あなたの最初の問題を幾分解決しました。メソッドget_for_modelを使用すると、クラスまたはインスタンスの両方を使用できます。詳しくはthe contettypes docsをご覧ください。

関連する問題