Re: Best way of getting objects within a certain date range (method or manager)?
That was it. Thanks! On Jun 30, 9:59 am, Matt <[EMAIL PROTECTED]> wrote: > On Jun 30, 8:36 am, "[EMAIL PROTECTED]" > > <[EMAIL PROTECTED]> wrote: > > It sounds like I'm using "event_date" without defining it first. But > > the examples in the Django documentation do the same thing. What am I > > doing wrong? > > Try: super(CurrentManager, > self).get_query_set().filter(event_date__gte=datetime.date.today()) --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com 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 -~--~~~~--~~--~--~---
Re: Best way of getting objects within a certain date range (method or manager)?
On Jun 30, 8:36 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > It sounds like I'm using "event_date" without defining it first. But > the examples in the Django documentation do the same thing. What am I > doing wrong? Try: super(CurrentManager, self).get_query_set().filter(event_date__gte=datetime.date.today()) --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com 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 -~--~~~~--~~--~--~---
Re: Best way of getting objects within a certain date range (method or manager)?
Yes, it sounds like a custom manager will do the job. Here's what I added: class CurrentManager(models.Manager): def get_query_set(self): return super(CurrentManager, self).get_query_set().filter(event_date > datetime.date.today()) class Event(models.Model): ATTIRE_CHOICES = ( ('C', 'Casual'), ('F', 'Formal'), ) slug = models.SlugField(prepopulate_from=('name',), unique=True, help_text='This field will prepopulate from the name field.') name = models.CharField(max_length=200) location = models.ForeignKey('Location') description = models.TextField(help_text='Please use http://daringfireball.net/projects/markdown/syntax";>Markdown syntax.') event_date = models.DateField() start_time = models.TimeField() finish_time = models.TimeField() attire = models.CharField(max_length=1, choices=ATTIRE_CHOICES) featured_event = models.BooleanField() featured_event_photo = models.ForeignKey(Photo, blank=True, raw_id_admin=True, null=True) category = models.ForeignKey(Category) objects = models.Manager() current = CurrentManager() Only, when I try to get the current Event objects via the Django shell, I receive an error: >>> Event.current.all() Traceback (most recent call last): File "", line 1, in File "/home/ypknox/webapps/django/lib/python2.5/django/db/models/ manager.py", line 67, in all return self.get_query_set() File "/home/ypknox/webapps/django/ypknox/apps/events/models.py", line 8, in get_query_set return super(CurrentManager, self).get_query_set().filter(event_date > datetime.date.today()) NameError: global name 'event_date' is not defined It sounds like I'm using "event_date" without defining it first. But the examples in the Django documentation do the same thing. What am I doing wrong? On Jun 30, 9:02 am, bruno desthuilliers <[EMAIL PROTECTED]> wrote: > On 30 juin, 14:53, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > wrote: > > > > > I'm wanting to display only current (vs. expired) calendar events via > > my Django events app. Each event has a date that it will occur. But > > I'm not sure of the best method to get only the current events in the > > db. > > > Current events are those whose date is less than or equal to the > > present date. They are expired when the present date is greater than > > the event date. > > > I have been able to display only the current events in the generic > > list view for all events by doing the following in my URLs: > > > event_list_info = { > > 'queryset' : Event.objects.filter(date__gte=datetime.date.today()), > > 'allow_empty' : True, > > > } > > > What's the best way to do this in my models? > > Use a custom manager, definitively. cf James Bennett's post on this > topic:http://www.b-list.org/weblog/2008/feb/25/managers/ --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com 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 -~--~~~~--~~--~--~---
Re: Best way of getting objects within a certain date range (method or manager)?
On 30 juin, 14:53, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > I'm wanting to display only current (vs. expired) calendar events via > my Django events app. Each event has a date that it will occur. But > I'm not sure of the best method to get only the current events in the > db. > > Current events are those whose date is less than or equal to the > present date. They are expired when the present date is greater than > the event date. > > I have been able to display only the current events in the generic > list view for all events by doing the following in my URLs: > > event_list_info = { > 'queryset' : Event.objects.filter(date__gte=datetime.date.today()), > 'allow_empty' : True, > > } > > What's the best way to do this in my models? Use a custom manager, definitively. cf James Bennett's post on this topic: http://www.b-list.org/weblog/2008/feb/25/managers/ --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com 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 -~--~~~~--~~--~--~---
Best way of getting objects within a certain date range (method or manager)?
I'm wanting to display only current (vs. expired) calendar events via my Django events app. Each event has a date that it will occur. But I'm not sure of the best method to get only the current events in the db. Current events are those whose date is less than or equal to the present date. They are expired when the present date is greater than the event date. I have been able to display only the current events in the generic list view for all events by doing the following in my URLs: event_list_info = { 'queryset' : Event.objects.filter(date__gte=datetime.date.today()), 'allow_empty' : True, } What's the best way to do this in my models? --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com 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 -~--~~~~--~~--~--~---