2010-10-14 12 views
0

J'ai une table avec quelques milliers de disques (produits). Chaque produit a une 4 différentes catégories:Django: moyen le plus efficace pour interroger de nombreux enregistrements?

CAT1 CAT2 CAT3 CAT4 

Je me demande si est-il une méthode, ou quelle est la meilleure pratique, retrive dynamiquement les catégories disponibles en fonction des catégories déjà sélectionnées (en utilisant Ajax). Exemple:

si CAT1 = green tous les produits avec CAT1 = green auront une série de catégories CAT2 et ainsi de suite. Je voudrais savoir quelles sont les catégories CAT2 CAT3 CAT4 dont les produits correspondent CAT1 = green. Une fois que j'ai défini une valeur ou CAT2 ainsi je voudrais faire la même chose basée sur CAT1 && CAT2 valeurs.

Merci.

+0

Essayer de comprendre votre question - voulez-vous trouver ce que les catégories d'objets avec «CAT1 = vert» ont? Peut-être ajouter un exemple de jeu de produits, puis un exemple de jeu de résultats que vous visez. –

+0

Quel code avez-vous essayé? Quel problème a ce code? –

+0

Y a-t-il des relations établies entre ces modèles? Postez vos modèles si vous le pouvez. –

Répondre

0

Merci pour la réponses. La sélection chaînée ne fonctionne que partiellement car je n'ai pas de structure hiérarchique. Voici un exemple de données:

PRODUCT 1 
CAT1 = vegetables 
CAT2 = heavy 
CAT3 = green 

PRODUCT 2 
CAT1 = vegetable 
CAT2 = light 
CAT3 = red 

PRODUCT 3 
CAT1 = diary 
CAT2 = heavy 
CAT3 = red 

Dans mon modèle, je voudrais faire un système de sorte que lorsque les utilisateurs choisissent CAT1 = vegetables ils voient CAT2 options à heavvy et de la lumière alors que s'ils choisissent CAT1 = diary la seule option pour CAT2 est lourd et ainsi de suite.

Mon chemin serait d'obtenir un json de toute la table des produits et de rechercher les valeurs disponibles une fois qu'une catégorie a été sélectionnée ... mais la table des produits comprend des milliers d'articles et je suis sûr qu'il va ralentir l'application entière. Il y a quelque chose de similaire dans la page d'administration lorsque vous ajoutez la fonction Filtre (list_filter) car elle affiche uniquement les champs qui contiennent des entrées.

MERCI!

+0

Si vous souhaitez mettre à jour votre question, la bonne façon de le faire est de modifier la question elle-même, pas de fournir une réponse. Veuillez envisager de supprimer cette réponse et de modifier la question elle-même à la place. Merci! – jsalonen