class MyModelCube(Cube): my_dimension = Dimension(field='my_float_field__range', sample_space=[(0, 1.5), (1.5, 6.2)])
@static def aggregation(queryset): return queryset.count()/MyModel.objects.count() * 100 Basically when you declare a dimension, you can use any field-lookup from Django, so when I write 'my_float_field__range' it means : -> You said in your question "There is a float field in my model(table)", as you didn't tell the name of your "float field", I wrote : 'my_float_field' -> You said that you want the percentage in each range... so I used the field look-up '__range' from Django. If your "float field" is called "gnagna", then you would declare your dimension like this : Dimension(field="gnagna__range", ... Ok ... when you have declared this, you have a Cube class. After, you need to instantiate an object from this class, in order to use its methods ! To do this, you call the Cube constructor, with a queryset as argument : >>> instantiated_cube = MyModelCube(a_queryset) Then, and only then, you can use the methods (all the calculations will be based on "a_queryset"). For exemple, if you want a list of measures : >>> my_measures = instantiated_cube.measure_list("my_dimension") Considering the sample space I used to declare the dimension, this should give something like this : >>> my_measures [65, 29] Where 65 means "65% of the floats are in the range [0, 1.5]", 29 means "29% of the floats are in the range [1.5, 6.2]" Is it clearer like this ? On Sep 11, 4:04 am, Lucian Romi <romi.luc...@gmail.com> wrote: > Also, need I define "my_float_field__range"? Thanks > > On Fri, Sep 10, 2010 at 6:52 PM, Lucian Romi <romi.luc...@gmail.com> wrote: > > Hi, Sebastien > > > Follow your instruction, I was able to create a Cube object and define > > sample_space. > > However, I don't know how to retrieve the measure result. Can you tell > > me how to do that? > > What do you mean by "instantiate a cube with a base queryset, and use > > one of the methods > > provided to calculate the statistics" > > > Thanks. > > > On Tue, Aug 31, 2010 at 1:33 AM, sebastien piquemal <seb...@gmail.com> > > wrote: > >> To integrate a calculated value with search features from admin app, I > >> don't know any other way than create and save a calculated field on > >> your model ... > >> This calculated field, you can calculate it with cube ... but if you > >> don't use the Cube for any other statistic than that, it is too much > >> overhead. > > >> On Aug 31, 5:30 am, Lucian Romi <romi.luc...@gmail.com> wrote: > >>> Thanks Sebastien. > > >>> Can I integrate Cube with filter and search features from the admin app? > >>> Also, to make things simple, I'm going to use GChart, but I need > >>> statistic data. > >>> Let me download Cube and spend some time on it. Thanks. > > >>> On Mon, Aug 30, 2010 at 4:16 PM, sebastien piquemal <seb...@gmail.com> > >>> wrote: > >>> > I created an app to easily generate the stats part : > >>> >http://code.google.com/p/django-cube/;however you still have to > >>> > create the chart, for example with matplotlib : > >>> >http://www.scipy.org/Cookbook/Matplotlib/Django. > > >>> > To create your stats with django-cube, you can use this code : > > >>> > from cube.models import Cube, Dimension > > >>> > class MyModelCube(Cube): > >>> > my_dimension = Dimension(field='my_float_field__range', > >>> > sample_space=[(0, 1.5), (1.5, 6.2)]) > > >>> > �...@static > >>> > def aggregation(queryset): > >>> > return queryset.count()/MyModel.objects.count() * 100 > > >>> > - You specify one dimension for the cube, this dimension refers to the > >>> > field lookup 'my_float_field__range' (where 'my_float_field' is of > >>> > course the name of your field) > >>> > - then you specify a sample space for this dimension, which in fact > >>> > means that you specify for which ranges the stats will be calculated > >>> > (here, on the ranges (0, 1.5) and (1.5, 6.2)) > >>> > - then you write your aggregation function, which is in your case a > >>> > percentage calculation ('queryset' is the queryset filtered according > >>> > to the dimensions you will use while querying the cube, divided by the > >>> > total, multiplied by 100) > >>> > - finally, you instantiate a cube with a base queryset, and use one of > >>> > the methods provided to calculate the statistics > > >>> > Ok, the doc is kind of bad for now, but I can help you if you want to > >>> > use it but you don't manage to do so. > > >>> > On Aug 30, 8:24 pm, hollando <romi.luc...@gmail.com> wrote: > >>> >> I want to make a statistic app. > >>> >> There is a float field in my model(table).I want to use a chart to > >>> >> show what's the percentage in each range. > >>> >> Any suggestion to make such and app that can fit into django model. > >>> >> Thanks. > > >>> > -- > >>> > 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 > >>> > athttp://groups.google.com/group/django-users?hl=en. > > >> -- > >> 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 > >> athttp://groups.google.com/group/django-users?hl=en. > > -- 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.