2009-11-26 7 views
1

Je me demandais s'il y avait un moyen de transmettre deux variables ou plus dans un gestionnaire personnalisé ... il y a cinq variables qui proviennent de différentes vues mais dans le modèle, j'ai déclaré un gestionnaire gérer le filtrage basé sur l'une de ces variables ... Je veux que toutes les variables soient prises en compte dans la requête de filtre. Y a-t-il un moyen de faire cela?Passer plusieurs valeurs dans un gestionnaire

class VehicleQuerySet(QuerySet): 
    def vehicle_query(self, year): 
     return self.filter(common_vehicle__year__year__exact=year).exclude(status__status='Incoming') 

class VehicleManager(models.Manager): 
    def get_query_set(self): 
     return VehicleQuerySet(self.model) 

    def vehicle_query(self, year): 
     return self.get_query_set().vehicle_query(year) 

Puis dans la vue:

vehicle_query = Vehicle.smart_objects.vehicle_query(year) 
+0

Montrez-nous ce que vous avez vu jusqu'à présent. –

+0

J'ai ajouté mon code ... fondamentalement, je veux passer toutes les valeurs à travers vehicle_query – Stephen

Répondre

2

Je pense que le code que vous avez donné est inutilement compliqué. Vous n'avez pas besoin de définir une sous-classe queryset, comme la boîte de filtrage et doit être fait dans le gestionnaire:

class VehicleManager(models.Manager): 
    def vehicle_query(self, year): 
     return self.get_query_set().filter(common_vehicle__year__year__exact=year).exclude(status__status='Incoming') 

Cependant, je ne comprends pas vraiment votre question. Vous savez déjà comment faire passer une variable dans une méthode de gestion, pourquoi en passer plus est-il difficile?

+0

réussi à trouver une solution ... travailler avec des sessions est un peu plus facile pour moi :) thnx pour l'aide Daniel – Stephen

Questions connexes