1

基本的な送信フォーム (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ログには何も表示されません。事前に感謝します。私はこれで本当に髪を失っています。

4

1 に答える 1

0

404エラーが発生した場合は、間違いなくurls.py構成に問題があります。dajaxiceのURLの上にワイルドカードのURLはありますか?dajaxice url confを最初に配置して、何が起こるかを確認してください。

とにかく...あなたのviews.py、ajax.pyなどはアプリの中にありますか?または、それらすべてがルートプロジェクトフォルダにあります。それも問題になる可能性があります。

于 2012-01-02T16:45:27.533 に答える