Je voulais jouer avec dajax pour mon projet django actuel. Je stardet en regardant le simple form example sur le site Web, mais je ne peux pas le faire fonctionner correctement. Je continue à obtenir cette erreur (avec Firebug) « Erreur: Dajax ne définit pas »Problèmes Dajax/dajaxice: "Dajax n'est pas défini" et "manquant" après l'instruction "
Aussi je tente de mettre en œuvre le dajaxice example, mais je reçois cette autre erreur:
Error: missing } after function body
Source File: http://localhost:8000/dajaxice/dajaxice.core.js
Line: 30, Column: 52
Source Code:
alert("data.message")({"message": "Buuuuuuuuu!"})
Voici mes fichiers (ajax.py et javascript.js) et ma fonction de vue. Le modèle html est analogue à celui du site Web.
ajax.py
from django.utils import simplejson
from dajaxice.core import dajaxice_functions, Dajaxice
from dajax.core import Dajax
def myexample(request):
return simplejson.dumps({'message':'Buuuuuuuuu!'})
dajaxice_functions.register(myexample)
def updatecombo(request, option):
dajax = Dajax()
options = [ ['Madrid','Barcelona','Vitoria','Burgos'],
['Paris','Lille','Nantes','Lyon'],
['London','Manchester','Liverpool','Someother'],]
out = ""
for o in options[int(option)]:
out += "%s<option value='#'>%s" % (out,o,)
dajax.assign('#combo2', 'innerHTML', out)
return dajax.json()
dajaxice_functions.register(updatecombo)
javascript.js
function the_callback(data){
alert(data.message);
}
mon view.py
from django.shortcuts import render_to_response
def basic_view(request):
return render_to_response('test.html', {}, context_instance = RequestContext(request))
urls.py
import os
from django.conf import settings
from django.conf.urls.defaults import *
from dajaxice.core import dajaxice_autodiscover
from dajax_test.tester.views import *
from django.contrib import admin
admin.autodiscover()
dajaxice_autodiscover()
site_media = os.path.join(
os.path.dirname(__file__), 'site_media'
)
urlpatterns = patterns('',
(r'^%s/' % settings.DAJAXICE_MEDIA_PREFIX, include('dajaxice.urls')),
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': site_media},),
(r'^dajaxice/$', basic_view)
)
J'ai configuré settings.py comme ils disent sur le site principal. je ne sais pas ce qui ne va pas, google ne semble pas aider (toute recherche de dajax/dajaxice donne des résultats pour ajax ... assez évident, assez ennuyeux ...) un indice/aide?
MISE À JOUR: en mettant à jour dajaxice via easy_install j'ai réussi à obtenir le travail de touche (fonction myexample travaille actuellement). Encore j'ai l'erreur sur la fonction updatecombo ("Dajax n'est pas défini") –