2017-02-10 3 views
0

Ich muss über einige query objects aus meiner Datenbank iterieren und sie auf der Vorlage anzeigen, ich habe Modellfeld wie Preis, Kosten und Gewinn, die Idee ist nicht direkt zu analysieren, weil die Liste wird in Echt env zu groß sein, so dass ich mit so etwas wie diese FelderIterator() über Abfrageobjekte django

from __future__ import print_function 
from django.views.generic import ListView 

from projects.models import Project 
from .services import CurrencyConversionService 


    class ProjectStatisticsList(ListView): 
     model = Project 
     template_name = 'statistics/statistics_list.html' 

     def get_context_data(self, **kwargs): 
      context = super(ProjectStatisticsList, self).get_context_data(**kwargs) 

     for context['price_aux'] in Project.objects.all().iterator(): 
      # do the iteration here and later for loop in tempalte 
      pass 
     return context 

Modelle gestartet

price_aux = models.DecimalField('price aux', max_digits=20, decimal_places=2, default=0, blank=True, null=True) 
cost_aux = models.DecimalField('cost aux', max_digits=20, decimal_places=2, default=0, blank=True, null=True) 
profit_aux = models.DecimalField('profit aux', max_digits=20, decimal_places=2, default=0, blank=True, null=True) 

Mein Problem ist, dass ich nicht eine Idee haben, wie ich das tun kann, kann jemand Bitte hilf mir zu verstehen, wie ich das machen kann, danke.

+0

Ich Rollback Ihre Bearbeitung, weil es die ursprüngliche Frage abgeschlossen ungültig gemacht. Die Bearbeitung ergab keinen Sinn - du musstest nur den von dir verwendeten Queriesatz kommentieren – Sayse

+0

@Sayse ok, ich werde das tun, eine Sache, die ich vergessen habe zu erwähnen ist, dass ich diese Daten in eine Währung konvertieren muss, Das war von Anfang an mein Problem. Kann ich also nach der Konvertierung meiner Daten noch Anmerkungen und Aggregate verwenden? – PetarP

Antwort

2

Es gibt ein klares Missverständnis darüber, was die "Vorlage" hier ist, sowie die Abfragegruppen.

Django-Templates sind immer noch serverseitig aufgebaut. Selbst wenn Sie dies tun würden, würden Sie trotzdem alle Elemente, die Sie wollen, am selben Punkt wiederholen, so dass Sie keine Zeit sparen.

Auch werden Abfragegruppen träge ausgewertet, so dass die Ergebnisse nicht abgerufen werden, bis Sie sie benötigen, was Sie wahrscheinlich hoffen, dass Ihr "Iterator" tun würde.

Verwandte Themen