0

この質問を投稿しているのは、エラーが発生しているからではなく、dajaxの使用方法を知りたいからです。

これが私がやりたいことです:

ホームページにいくつかのリンク(本、著者など)が必要です。ユーザーがそれらをクリックすると、本/著者のリストが表示されます。

これが私がしていることです:

ユーザーが本をクリックすると、私はdajaxプロセスを呼び出します。ajax.pyの内部:

  • 私はすべての本を使って手に入れますbooks = Book.objects.all()
  • 私はtemplate = "{% for book in books %}"... blah blah blah
  • テンプレートをレンダリングしますa = Template(template).render(Context(locals()))
  • 私はdajaxがいくつかのdivタグのinnerhtmlとしてを割り当てます。

これは物事を行うための正しい方法ですか?ajax.pyでテンプレートを作成する代わりに、xyz.htmlからテンプレートを開いてレンダリングする必要がありますか?同様のタスクを実行するための他の良い、クリーンな方法はありますか?

4

2 に答える 2

1

これまで聞いたことがないのでdajax(ただし、最新のコミットは約10か月前であるため、プロジェクトは明らかに非アクティブになっているようです)、に直接関係のないアドバイスを提供しますdajax

基本的に、あなたがする必要があるのは、AJAXを使用して取得されたリストを表示することです。次のツールを使用すると、これは非常に簡単です。

  • jQuery(または別のJSフレームワーク)
  • JSON

あなたがする必要があるのは:

  1. 書籍のリストを返すようにビューの1つを構成します(ドキュメントについてはこちらをご覧ください
  2. 選択したJSフレームワークを使用してこのビューにアクセスします(jQuery.get()jQUeryの場合)
  3. JSフレームワークを使用して、get呼び出しで取得したコンテンツを追加して、ページの一部<ul>またはページを更新<ol>します(また、表示するオーバーレイに配置することもできます)。
于 2012-06-02T20:44:00.650 に答える
0

専用のテンプレートファイルからテンプレートをロードする方が、ほとんどの場合、よりクリーンです。HTMLを含む長いPython文字列は、あまり読みやすくありません。

もちろん、本を送信してadd_data(data,callback_function)、リストにデータを入力するjavascriptコールバック関数を作成することもできます。これは、ThomasOrozcoが提案したことを行うDajaxの方法です。

しかし、テンプレートファイルをレンダリングして送信するページネーションの例innerHTMLから判断すると、「正しい方法」です。

于 2012-06-02T21:38:34.437 に答える