On Fri, Feb 17, 2012 at 12:00 PM, andreas <[email protected]> wrote: > Sorry for the vague description, but i find it hard to exactly name > the problem i am facing. Hopefully my description is clear enough: > > I am working on a reporting app that collects and displays events/ > actions that happened in my application. > > I wrote a litte plugin base class and added plugins for all of the > relevant events i am interested in. > Basically a plugin only defines the query that is used to return the > matching events. > > Now i am facing the situation that the queries are only evaluated > once: > A view that instantiates all my plugins and collects their events > (get_plugin_data) always returns the same data unless i restart my > server. > > class DigestPluginBase(object): > > def get_plugin_data(self): > if self.queryset: > data = list(self.queryset) > else: > data = [] > return data > class UpdatesNew(DigestPluginBase): def __init__(self, *args, **kwargs): self.queryset = Update.objects.filter(timestamp__gte=yesterday) > > Querysets are lazy, so i assume this is a problem with the way i > assign/define the queryset for my plugin. > But then i don't see how the old data is stored in my class as the > there should be a new instance (and new queries) of my class every > time the view is called. > So where do i go wrong? > > On a side note: Can you think of more elegant ways to define the > querysets for my plugins?
FTFY How you had it before set a class level attribute. It exists on each instance, but only as a copy of that on the class. Set it up as an instance attribute (see inline fix) and it will be recalculated each time your class is instantiated. Cheers Tom -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

