Roland, Instead of using annotate, could you just add the avg_days_instock field as another key in the select argument to extra?
Ian On Tue, May 18, 2010 at 9:03 PM, Roland van Laar <rol...@micite.net> wrote: > Hello, > > Question: How do I calculate the Average of a calculated field. > > My (simplified) models.py: > > Manufacturer(models.Model): > name = models.CharField(length=100) > > Product(models.Model): > name = models.CharField(length=100) > > Items(models.Model): > manufacturer = models.Foreignkey(Manufacturer) > product = models.ForeignKey(Product) > bought_date = models.DateField() > sold_date = models.DateField(null=True, blank=True) > > On these models I want to calculate the number of days an item was in stock > on a given date: > > qs = Items.objects.all().extra(select= \ > {'days_in_stock': "'%s' - transactie_datum_inkomend + 1" % > (given_date.isoformat())}) > > And then I want to know the average number of days all the items selected on > manufacturer and product. > > qs.values('manufacturer', 'product) > qs.annotate(Count('manufacturer'), avg_days_instock=Avg('days_in_stock')) > > The annotate fails because 'days_in_stock' is not a valid field: > FieldError: Cannot resolve keyword 'days_in_stock' into field. Choices are: > manufacturer, product, bought_date, sold_date > > How can I calculate the average of the days_in_stock? > > Thanks, > > Roland van Laar > > > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-us...@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. > > -- ======================================= 株式会社ビープラウド イアン・ルイス 〒150-0021 東京都渋谷区恵比寿西2-3-2 NSビル6階 email: ianmle...@beproud.jp TEL:03-6416-9836 FAX:03-6416-9837 http://www.beproud.jp/ ======================================= -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@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.