あなたが引用したインストールとクイックスタートのリファレンスに従うとき、私はdajaxiceの例にも苦労していました。「Dajaxice.exampleが定義されていません」と表示されていましたが、私のエラーは同様でした。
myproj
メインの django プロジェクトと、ajax.py ファイルが配置されているインストール済みアプリを呼び出しましょうmyproj/myapp
。私のためにそれを機能させるように見えた2つの部分は次のとおりです。
正しいディレクトリにajax.py ファイルを配置def sayhello(request)
し、sayhello 関数に対応する正しいパスを使用します。
- settings.INSTALLED_APPS にリストされているアプリのいずれかのディレクトリに配置します。
- インストール済みのアプリ名が
"myproj",
ajax ファイルとしてリストされている場合myproj/ajax.py
、js リファレンスは次のようになります。 Dajaxice.myproj.sayhello(my_js_callback)
- インストール済みのアプリ名が
"myproj.subapp",
ajax ファイルのようにリストされている場合myproj/myapp/ajax.py
、js 参照は次のようになります。Dajaxice.myproj.myapp.sayhello(my_js_callback)
[私はこれを使用しました]
{% dajaxice_js_import %}
をテンプレート<head>
セクション に入れることを忘れないでください
注: 私の例では、「myapp」を「example」に置き換えて、dajaxice のサンプル コードに一致させることができます。
コードで更新したときに、collectstatic を正しく設定して、新しい /static/dajaxice/dajaxice.core.js ファイルを生成します。
- あなたが参照した dajaxice readthedocs インストール リンクに記載されているとおりに指示に従いました。
- settings.py ファイルに STATIC = '/static/ を追加しました
INSTALLED_APPS
settings.py ファイルに「django.contrib.staticfiles」を追加
- を実行
python manage.py collectstatic
して、すべてのファイルを /static/ ディレクトリにプルしました。これには、生成されたファイルが含まれます/static/dajaxice/dajaxice.core.js
- このファイルを調べると、sayhello 関数のオブジェクト階層が次のように表示されるはずです:
Dajaxice.myproj.sayhello
またはDajaxice.myproj.myapp.sayhello
.
また、 http://www.dajaxproject.com/multiply/の乗算の例を試している場合は、ファイルfunction calculate()
の場所を次のいずれかに変更します。ajax.py
<script type="text/javascript" charset="utf-8">
function calculate(){
Dajaxice.myproj.myapp.multiply(Dajax.process,{'a':$('#a').val(),'b':$('#b').val()})
};
</script>
また
<script type="text/javascript" charset="utf-8">
function calculate(){
Dajaxice.myproj.multiply(Dajax.process,{'a':$('#a').val(),'b':$('#b').val()})
};
</script>
<head>
セクションに適切な dajax js ファイルを含めます。
<script src="/static/dajax/jquery.dajax.core.js"></script>
また
{% static "/static/dajax/jquery.dajax.core.js" %}