Je voulais développer une application Django et l'une des fonctionnalités que je voudrais avoir est des listes déroulantes dynamiques ... spécifiquement pour les marques et modèles de véhicules ... en sélectionnant un spécifique make mettra à jour la liste des modèles avec seulement les modèles qui tombent sous cette marque .... Je sais que cela est possible en javascript ou jQuery (ce serait mon meilleur choix si quelqu'un a une réponse) mais je ne sais pas comment y aller à propos de ça. De plus, je voudrais que la marque, le modèle, l'année et la série soient communs alors que les autres attributs comme la couleur, la transmission, etc. soient des variables de sorte que l'on doive seulement entrer la marque, le modèle, l'année et la série. un nouveau véhicule. Toutes les idées seraient très appréciées.Django Liste déroulante dynamique de la base de données
Répondre
Les 3 choses que vous mentionnez être commun, marque, modèle, année, seraient les 3 valeurs d'entrée. Lorsqu'il est donné au serveur, un objet contenant les détails sera renvoyé à la page appelante. Cette page analyserait les détails de l'objet (en utilisant JavaScript) et mettrait à jour l'interface utilisateur pour les afficher à l'utilisateur. Du côté de Django, il doit y avoir des facilités pour prendre les 3 entrées, et retourner la sortie. Du côté client, il doit y avoir des facilités pour transmettre les 3 entrées au serveur, puis analyser de manière appropriée la réponse du serveur.
Il existe une structure d'API REST pour Django qui facilite l'ajout de la "API" mentionnée ci-dessus - Piston. À l'aide de Piston, vous devez simplement créer une URL pour cette ressource, puis ajouter un gestionnaire pour le traiter. (Vous aurez toujours besoin d'écumer la documentation du piston, mais cela devrait vous donner une idée de ce qu'il ressemble à)
urls.py:
vehicle_details = Resource(handler=VehicleDetails)
url(r'^vehicle/(?<make>.*)/(?<model>.*)/(?<year\d{2,4}/(?P<emitter_format>[a-z]{1,4}), vehicle_details, name='vehicle_details'),
handler.py:
class VehicleDetails(BaseHandler):
methods_allowed = ('GET',)
model = Vehicles #whatever your Django vehicle model is
def read(self, request, *args, **kwargs):
# code to query the DB and select the options
# self.model.objects.filter()...
# Build a custom object or something to return
return custom_object
Ceci définit simplement le www.yoursite.com/vehicle/[make]/ url [model]/[year]/json pour renvoyer un objet de données personnalisé dans JSON pour jquery à analyser. Du côté client, vous pouvez utiliser jquery pour configurer un événement (bind) de sorte que lorsque les trois listes déroulantes ont une valeur sélectionnée, il exécute un $ .get() sur l'URL de l'API. Quand il récupère ce résultat, il le passe dans l'analyseur Jquery JSON et donne l'objet personnalisé, en tant qu'objet javascript. Cet objet pourrait ensuite être utilisé pour remplir plus de menus déroulants.
(avertissement Big, je viens d'écrire ce qui suit du haut de ma tête, donc il est pas censé être copier et coller. Il est juste pour l'idée générale.)
<script type="text/javascript">
// On document load
$(function() {
$('#dropdown_make').bind('change', checkForValues());
$('#dropdown_model').bind('change', checkForValues());
$('#dropdown_year').bind('change', checkForValues());
});
function checkForValues() {
if ($('#dropdown_make').val() && $('#dropdown_model').val() && $('#dropdown_year').val())
updateOptions();
}
function updateOptions() {
url = '/vehicle/';
url += $('#dropdown_make').val() + '/';
url += $('#dropdown_model').val() + '/';
url += $('#dropdown_year').val() + '/';
url += 'json/';
$.get(url, function(){
// Custom data object will be returned here
})
}
</script>
Ceci est inquiétante étrangeté: Dynamic Filtered Drop-Down Choice Fields With Django
Sa question:
« Voici la situation: j'ai une base de données avec la voiture marques et modèles Lorsqu'un utilisateur sélectionne une marque, je veux. pour mettre à jour la liste déroulante des modèles avec seulement les modèles associés à cette marque ... Donc je veux utiliser Ajax pour remplir les données. "
Vous n'êtes pas le même gars? :)
- 1. Remplir la liste déroulante d'une table de base de données
- 2. Pays/État Liste déroulante dynamique
- 3. Liste déroulante dynamique avec des actions
- 4. Meilleure façon de créer une liste dynamique (liste déroulante)?
- 5. Problème avec la liste déroulante de la liste déroulante
- 6. comment définir la source de données dans la liste déroulante
- 7. Sélectionnez l'entrée correcte dans une liste déroulante sur la base de l'entrée de la base de données?
- 8. Mise à jour de la liste déroulante depuis la liste déroulante
- 9. données de la table de mise à jour sur la base de la sélection de liste déroulante
- 10. 2ème liste déroulante changements basés sur le choix de la 1ère liste déroulante dans ASP.NET
- 11. sélectionnez l'index de ligne de la sélection de liste déroulante dynamique
- 12. Déclenchement de l'événement de modification de la liste déroulante
- 13. Django Admin: Gestion de la base de données
- 14. Images dans la liste déroulante
- 15. Limite de liste déroulante Ajax à la liste
- 16. Résultats de la liste déroulante dans gridview
- 17. Erreur dans la liaison de la source de données à la zone de liste déroulante
- 18. Problème personnalisé de liste déroulante et de zone de liste déroulante?
- 19. Afficher "Chargement en cours ..." dans la zone de liste déroulante
- 20. Existe-t-il un moyen simple de remplir la liste déroulante dans ce schéma de base de données Access?
- 21. problème avec le filtrage dans une liste déroulante propertyproperty - Django
- 22. Comment définir la largeur d'une colonne de table pour une liste déroulante dynamique?
- 23. PHP définir la valeur sélectionnée de la liste déroulante
- 24. Contrôle de liste déroulante à liste double
- 25. string; # dans la liste déroulante
- 26. Comment lier les données LINQ à la liste déroulante
- 27. Django et les tables de base de données héritées bizarres
- 28. Zones de liste déroulante avec Hibernate
- 29. ASP.Net: liste déroulante et source de données créée dynamiquement
- 30. Comment puis-je obtenir le nombre de résultats de recherche pour une liste déroulante dynamique?
Pas la même gars ... c'est juste que nous avons essayé de résoudre le même problème ... merci pour le lien cependant, il semble que ce soit un bon début pour moi. –
Je suis le gars, et c'est étrange :) – Dustin