基本的な送信フォーム (dajaxice の例のようなもの) を作成しようとしていますが、firebug コンソールから 404 エラーが引き続き発生します。
404 NOT FOUND 386ms
"NetworkError: 404 NOT FOUND - http://<my_website>/dajaxice/maynard.maynard_core.subscribe/"
私のプロジェクトフォルダー構造は
/maynard/maynard_core/
このフォルダーには、プロジェクトのメイン ファイル (views.py、ajax.py など... メインの django プロジェクト フォルダー) が含まれます。ajax.py ファイル内には、subscribe メソッドがあります。
from dajax.core import Dajax
from dajaxice.core import dajaxice_functions
from dajaxice.decorators import dajaxice_register
from views import subscribe_search
from forms import SubscriptionForm, SendMailForm
from django.core.mail import send_mail
def subscribe(request, form):
if request.POST:
dajax = Dajax()
form = SubscriptionForm(form)
try:
if form.is_valid():
url = form.cleaned_data['url_sub']
what = form.cleaned_data['what_sub']
where = form.cleaned_data['where_sub']
mail = form.cleaned_data['email']
subscribe_search(url,what,where,mail)
dajax.assign('#sub_mess_top','innerHTML','Thank you for subscribing to the search')
else:
dajax.add_css_class('#sub_mess_top','text error-message')
dajax.assign('#sub_mess_top','innerHTML','Couldn\'t complete the request, try again!')
return dajax.json()
except:
dajax.add_css_class('#sub_mess_top','text warning-message')
dajax.assign('#sub_mess_top','innerHTML','You already saved this search')
return dajax.json()
dajaxice_functions.register(subscribe)
次に、このjsメソッドを介して呼び出されます
function send_form_top(){
data = $('#subscribe').serializeObject(true);
Dajaxice.maynard.maynard_core.subscribe(Dajax.process,{'form':data});
}
フォームは、アクション「#」と onclick="send_form_top();" を持つ基本的なフォームです。
インストールと構成のガイド (構成された設定、構成された URL など) に従いましたが、これは非常に 101 の実装です。
urls.pyで
from dajaxice.core import dajaxice_autodiscover
dajaxice_autodiscover()
...
django.conf.urls.defaults.url(r'^%s/' % settings.DAJAXICE_MEDIA_PREFIX, django.conf.urls.defaults.include('dajaxice.urls')),
settings.py のインストール済みアプリに「dajaxice」を追加しました。DAJAXICE_MEDIA_PREFIX は「dajaxice」です (ドキュメントのように)。テンプレートも問題ありません (dajaxice 動的にコンパイルされた js が含まれているため)
しかし、それでも私はそれを機能させることができないようです。応答ヘッダーを確認したところ、dajax.js ファイルについて次のようになりました。
maynard_core: {
subscribe: function(callback_function, argv, custom_settings){
Dajaxice.call('maynard.maynard_core.subscribe', callback_function, argv, custom_settings);
},
...
これは、maynard/maynard_core/ 内の ajax.py ファイルにある submit メソッドが実際に含まれており、コールバックも正しいことを示しています。これをデバッグする方法が本当にわかりません.djangoログには何も表示されません。事前に感謝します。私はこれで本当に髪を失っています。