2010-10-25 9 views
0

Je construis une petite application qui regarde la disponibilité des véhicules et aide un client à les réserver. Dans ce document, j'utilise un assistant de formulaire qui guide l'utilisateur à travers les étapes.Django mettre à jour plusieurs requêtes

dans le backend Je suis en train de mettre à jour toutes les requêtes avec succès, mais je ne suis pas sûr de savoir comment en exécuter une partie.

J'ai deux modèles, devis et véhicules

Véhicule is_bok = Vrai ou faux Citation regarde le véhicule is_booked = False

Lorsque l'utilisateur génère sa citation, il peut voir combien de véhicules sont disponibles à savoir , 5.

si je puis choisir 2 véhicules, je voudrais mettre à jour les deux premiers véhicules disponibles à is_booked=True

### Check the vehicle availability and deduct amount of vehicles booked 
     amount_of_vehicles = 2 
     vehicle = Vehicle.objects.filter(is_booked=False) 
     ### run update for each vehicle 
     vehicle.update() 

Comment pourrais-je y parvenir?

Répondre

2

EDIT. Vous devez exécuter la mise à jour requête pour chaque élément queryset en raison de la tranche (limite):

amount_of_vehicles = 2 
vehicles = Vehicle.objects.filter(is_booked=False)[0:amount_of_vehicles] 
for vehicle in vehicles: 
    vehicle.is_booked = True 
    vehicle.save() 
+0

Assertion Erreur: Impossible de mettre à jour une requête une fois une tranche a été prise. – ApPeL

+0

@ApPeL mis à jour! – Anpher

Questions connexes