So with the items that are still waiting to be complete i wanted to show how many days the ticket has been open by doing something like ...
return date.today() - self.issued_date and then those that are complete ... return self.competion_date - self.issued_date Can i create 2 managers for this?? one to return completed, and one to return not completed?? On Oct 18, 12:04 pm, eyscooby <kenneyschm...@hotmail.com> wrote: > Ok, this is helping, believe it or not your are helping, I'm probably > confusing myself mostly. > > So the model method explanation was very helpful and you are correct > that works great, as long as all dates have a completion_date. If a > new ticket is entered it will fail due to a "NoneType field with > DateField". > That line in my model is as such "completed_date = > DateField(blank=True, null=True)". > > The Manager is doing nothing more than returning data from the > database as a query so that makes sense also. > > Step two .. is it because of the NULL=True? can't subtract date field > from null field (which makes sense), is there a way around that? > I think this is why i was trying to calculate on a specific filter. > > On Oct 18, 3:47 am, Daniel Roseman <dan...@roseman.org.uk> wrote: > > > > > On Monday, 17 October 2011 20:28:47 UTC+1, eyscooby wrote: > > > > Ok, sorry I thought I was starting to understand it a little better, > > > but now I think I took a step backwards, so if it is ok with you let's > > > step back and take it a step at a time. > > > > So, my first step is wondering if I really need a manager or not?? > > > I was thinking from your first response to me that you might be > > > suggesting that I did. Let's start there. > > > If I understand it correctly the Manager is a way of retrieving > > > specific information. > > > > thanks > > > Sorry for confusing you. There are two things going on here. > > > A Manager is for making custom queries to the database, to return new > > objects - either one or aquerysetof many. Your original code was using > > `Model.filter()` and modifying the result, so I suggested that it belonged > > in a manager. > > > A model method is useful when you want to do a separate, non-database, > > operation on a single object. That's what you really want to do here - given > > an instance of RequestTicket, calculate how old it is. There's noiteration > > contained in the method - you iterate through your existingqueryset > > elsewhere (say in the template) and call days_old on each instance: > > > {% for ticket in completed_tickets %} > > {{ ticket.name }}: {{ ticket.days_old }} > > {% endif %} > > > Or, in your particular circumstance, you simply give the `days_old` method > > as one of the elements of the `list_display` tuple, and Django takes care of > > the iterating, calling `days_old` on each row in the changelist. > > > So in both of these circumstances, `days_old` simply needs to look like > > this: > > > def days_old(self): > > return self.competion_date - self.issued_date > > > - so it returns a single value, for the one particular ticket instance which > > it has been called on. > > > Hope that helps. > > -- > > DR.- Hide quoted text - > > - Show quoted text - -- 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 django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.