1

ですから、これはおそらくばかげた質問ですが、私はこれに約4時間取り組んできました。私はPythonを独学で学んでおり(つまり、私は無難ですが、優れていません)、スクリプトをDjangoに拡張しようとしています。ただし、クライアント側のスクリプトが必要なため、jQueryを使用して非常に基本的なJavascriptを実行しようとしています。これは、そのデモがたくさんあるためです。

ただし、何も機能していません。私はこのようなチュートリアルを見つけることができます:http ://webcloud.se/log/AJAX-in-Django-with-jQuery/ 非常に役立つように見えますが、情報が不足しています(この場合、Javascript側で提供されるのはトリガーのない関数のコード)。与えられたjQueryコードをDjangoテンプレートに埋め込もうとすると、機能しませんが、与えられたコードの周りに書いたものに問題があるのか​​、与えられたものが間違っているのかわかりません。どこかの設定が間違っているので問題が発生します。

基本的に、クリックしてJavascriptからDjangoにデータを送信し(たとえば、現在のタイムスタンプを送信し)、Djangoが両側から完全に投稿するという非常に簡単な例を見たいと思います。(私はこのタイプの質問に対する他の多くのStackOverflowの回答を見てきましたが、それらはすべてより大きな例のようであり、基本的なデータ転送の問題とは無関係な接線に混乱するのではないかと心配しています。)すべてのタグと誰もがスキップするもの、URLファイル、およびビューファイルを含むDjangoテンプレート全体を表示したい。そうすれば、それを使って何かを始めるのに十分なことが何が起こっているのかを理解できるかもしれません。

前もって感謝します。

更新 実際には、問題はより一般的である可能性があります。私がこのコードを取るとき:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <a href="http://jquery.com/">jQuery</a>
    <script type="text/javascript" src="/usr/lib/pymodules/python2.6/django/contrib/admin/media/js/jquery.js"></script>`
<script>
 $(document).ready(function(){
   $("a").click(function(event){
     alert("As you can see, the link no longer took you to jquery.com");
     event.preventDefault();
   });
 });
    </script>
  </body>
</html>

正常に動作するhtmlファイルとして保存します。同じコードをDjangoテンプレートにすると(正しいディレクトリにドロップし、テンプレートローダーがロードするように設定されていることを確認する以外は変更されません)、突然機能しなくなります。FirefoxとChromeの両方でテストしました。

何かご意見は?

4

2 に答える 2

0

AJAXは、デバッグするのが非常に難しい場合があります。

実例を得るのに必要な部分が含まれているはずの前に投稿しました。

https://stackoverflow.com/a/12905016/1406860

于 2012-12-31T22:47:04.233 に答える
0

これは、私が ajax、jquery、および django を使用するのが好きな方法です。

ビュー.py:

def ajax(request):
    if request.is_ajax():
    // do whatever

urls.py:

url(r'^ajax-url/$', 'views.ajax', name='ajax_url'),

jquery:

$(document).ready( function() {
$('div#ajax-div').click(function(){
  $.ajax({
  type: "POST",
  url:"/ajax-url/",
  success: function(data){alert('Success!');}
  error: function(){ alert("Error");}
});
}

template.html:

<div id='ajax-div'>
      <a href='{% url ajax-url %}'>Click here for ajax</a>
</div>

{% url %} タグでは、django のバージョンによっては、URL パターンの名前を引用符で囲む必要がある場合があることに注意してください。

于 2012-12-31T23:15:26.573 に答える