2011-02-02 7 views
0

Je suis nouveau à utiliser quoi que ce soit ajax connexes, alors s'il vous plaît excusez mon ignorance.Django Admin et Dajax

Je travaille avec l'exemple here et essaie de le faire fonctionner dans l'Admin Django. Je travaille sur la création d'un formulaire de changement personnalisé pour le modèle dans lequel il sera utilisé.

Le problème que je rencontre est qu'après avoir fait la sélection dans la première boîte de sélection, rien ne se passe avec la deuxième boîte. J'ai essayé d'utiliser à la fois le prototype et la jquery, mais il semble que ça ne marche pas vers l'un ou l'autre.
Une chose que j'ai dû faire pour l'appeler même dans ajax.py, c'est que j'ai dû ajouter des guillemets autour de la variable Dajax.process passée dans onchange.

Je n'utilise actuellement que le serveur de développement django à des fins de test.

Qu'est-ce qui me manque?

+0

Pourriez-vous expliquer comment vous avez utilisé dajax dans admin django? J'ai un problème similaire mais je ne trouve aucun exemple de comment cela peut être fait. Si vous pouviez me dire comment vous avez résolu le problème ou comment vous avez utilisé 'django-dynamic-choices', ce serait très utile. – ac11

+0

Si je me souviens, j'ai fini par utiliser https://github.com/digi604/django-smart-selects à la place. – bmeyer71

+0

merci. Avez-vous une chance de vous rappeler comment vous l'avez utilisé avec admin? – ac11

Répondre

0

Donc, il y a plusieurs choses que vous aurez besoin de faire travailler ensemble afin de le faire:

Au minimum:

  • Un modèle d'URL pour traiter votre demande.
  • Une méthode de vue pour retourner les données dans
    quelle que soit la forme dont vous avez besoin.
  • Un fichier JavaScript qui a les gestionnaires d'événements dont vous avez besoin, que vous pouvez ajouter à travers les médias la propriété d'un formulaire, ou en l'incluant dans le modèle de formulaire de changement.

Peut-être:

  • Un modèle pour remplacer le haut- modèle d'administration pour répondre à vos besoins.
  • Une classe de formulaire personnalisé pour maintenir la valeur (s) que vous Ajax.

À partir de là, vous pouvez utiliser Firebug ou Fiddler pour vous assurer que vous passer dans et revenir les bonnes valeurs de votre appel Ajax.

Vous devrez également gérer la modification d'un enregistrement, où vous devrez déclencher un appel Ajax pour remplir votre formulaire dynamique en fonction de la valeur existante de l'objet.

Bonne codification!

+0

Il semble que la fonction ajax.py renvoie les valeurs auxquelles elle est censée être, j'ai pu les imprimer depuis le script vers la console. Cependant, la page Admin (change_form.html) n'actualise pas les valeurs de la seconde zone de sélection. Voyant comment j'ai juste copié et collé l'exemple, j'ai pensé que ça devrait marcher. En utilisant la même configuration pour un exemple différent, [ici] (http: // www.dajaxproject.com/dajaxice/), cela a très bien fonctionné. Avez-vous des exemples qui pourraient éclairer? – bmeyer71

+0

Je recommanderais d'utiliser votre propre code. Vous aurez un contrôle beaucoup plus serré sur ce qui se passe. Essayer de déboguer la «boîte noire» de quelqu'un d'autre peut souvent prendre plus de temps qu'il n'en faudrait pour écrire le vôtre. – Brandon

+0

Je l'ai trouvé au cours du week-end [django-dynamic-choices] (https://github.com/charettes/django-dynamic-choices) qui pourrait effectivement faire ce que je cherche. Sinon, ce peut être un point de départ. – bmeyer71