return sum(jobrecord.get_cost() or 0
for jobrecord in self.project.jobrecord_set.filter(
date__lte=date,
date__gte=self.start_date) or 0)
0
A
Répondre
3
Après un petit rewrite
query = self.project.jobrecord_set.filter(
date__lte=date,
date__gte=self.start_date)
values= (jobrecord.get_cost() or 0 for jobrecord in query or 0)
return sum(values)
Regardez bien l'values= (jobrecord.get_cost() or 0 for jobrecord in query or 0)
Que se passe lorsque la requête est vide?
Vous évaluez jobrecord.get_cost() or 0 for jobrecord in 0
1
0 est en effet pas itérable. Je pense que vous voulez laisser tomber ce dernier or 0
. Lorsque la requête de filtre ne correspond à aucun élément, elle renverra une requête vide et votre somme sera simplement 0, puisque sum([])
est zéro.
S'il existe une raison pour laquelle la requête peut déclencher une exception (dates non valides ou certaines de ces dates), une clause ou ne l'attrape pas non plus. [][1] or 0
soulève toujours une exception.
Questions connexes
- 1. Django, Python Boucle Logique Problème
- 2. Rendre ma classe C++ itérable via BOOST_FOREACH
- 3. Erreur dans ma syntaxe SQLite
- 4. python, dictionnaire et erreur int
- 5. Django - l'argument de type 'WSGIRequest' n'est pas itérable
- 6. Django/Python UserWarning Erreur
- 7. Django et python-twitter erreur
- 8. Python Socket aide (erreur de syntaxe)
- 9. Django Python: Syntaxe Eval pour plusieurs champs créés à l'exécution
- 10. Java Stack/Nest Count
- 11. Erreur de logique booléenne
- 12. Problème de syntaxe/logique en cascade INNODB
- 13. Erreur de syntaxe gnuplot lors de l'utilisation de python
- 14. erreur django non-cohérente
- 15. Pourquoi ne pas utiliser ma boucle conteneur foreach?
- 16. erreur Stackoverflow - instanciation ma classe d'objet
- 17. Erreur de syntaxe F #
- 18. Django Mod_python erreur
- 19. JavaScript Erreur de syntaxe
- 20. django pour boucle de comptage
- 21. python: redémarrer une boucle
- 22. erreur de syntaxe mysql
- 23. Boucle imbriquée en Python
- 24. Erreur de syntaxe
- 25. mysql erreur de syntaxe
- 26. Django modèle Erreur: Modèle u'base.html » ne peut pas être étendue
- 27. ERREUR SUR: numApprovals = (int) cmd.ExecuteScalar();
- 28. Ma syntaxe jQuery est-elle incorrecte ici?
- 29. Erreur lors de l'importation d'un module python dans Django
- 30. erreur de syntaxe sur la ligne `If`