Sure Tim
its this function in my Ast Model:

def minz(self):
                y = self.billsec/60.0
                for i in Rates.objects.all():
                        l = len(i.prefix)
                        if i.prefix == self.dst[:l]:
                                rated = i.rate

                if type(y) == float and y > int(y):
                        zz = (int(y)+1) * rated
                else:
                        zz = rated * y
                return "%.4f" % zz


and its working as i wanted it to be work

On Feb 24, 6:55 am, Timothy Kinney <timothyjkin...@gmail.com> wrote:
> Can you show me how you got it to work? I'd like to learn from this as well.
> Cheers.
>
> -Tim
>
> On Tue, Feb 23, 2010 at 8:39 PM, soFh <ahmed...@gmail.com> wrote:
> > Well its done finaly.
> > i was doing mistake , i was going for a loop on ASt model , while i
> > must goto Rates and its working perfect now .
>
> > On Feb 24, 5:19 am, soFh <ahmed...@gmail.com> wrote:
> > > no this function is working fine.here i am just converting seconds
> > > into minutes and rounding it to , thts we call 60/60 billing, say if
> > > user has called for 4 minutes and 1 sec then it would round up it like
> > > 5:00 rather then showing 4:01 and its exactly showing the same.
> > > I got my mistake and now just trying to solve it .
> > > i have another function minz which is in place of call cost in my data
> > > table on my template.
> > > DR gave perfect tip though i was doing the same thing but in another
> > > way and with a big mistake. Its about length of prefix.
> > > i was simply trying to do like a = len(Rates.prefix) and off course it
> > > wasn't working.
> > > now to match Ast.dst i have to take length of Rates.prefix to match
> > > the row but here i am again confused.
> > > cause prefix is not fixed number , it could be two it could be three
> > > or it could be four .
> > > So better i have to take length of prefix to match with Ast.Dst
> > > Please see if u can point me where i am doing wrong .
>
> > > def minz(self):
> > >                 y = self.billsec/60.0
>
> > >                 #my_prefix = self.dst[:2]
> > >                 #my_rate = Rates.objects.get(prefix=my_prefix)
> > >                 #if my_rate.prefix == self.dst[:len(my_rate.prefix)]:
> > >                 #       rated = my_rate.rate
>
> > >                 for i in Ast.objects.all():
> > >                         for x in Rates.objects.all():
> > >                                 l=len(x.prefix)
> > >                         if x.prefix == i.dst[:l]:
> > >                                 rated = x.rate
>
> > >                 if type(y) == float and y > int(y):
> > >                         zz = (int(y)+1) * rated
> > >                 else:
> > >                         zz = rated * y
> > >                 return "%.4f" % zz
>
> > > On Feb 24, 4:56 am, Timothy Kinney <timothyjkin...@gmail.com> wrote:
>
> > > > Ok, I think I understand what is going wrong. Look at your minutes
> > function
> > > > (from dpaste above in the thread):
>
> > > >         def minutes(self):
> > > >                 if self.billsec > 0 and self.disposition=='ANSWERED':
> > > >                         x = self.billsec/60.0
> > > >                         if type(x) == float and x > int(x):
> > > >                                 p = (int(x)+1)
>
> > > >                         return "%.2f" % p
> > > >                 else:
> > > >                         return 0
>
> > > > You are are trying to call self.billsec and self.disposition but this
> > > > doesn't hit the
> > > > database. You can access the database using a Manager. See:
> >http://docs.djangoproject.com/en/dev/topics/db/queries/#topics-db-que...
>
> > > > Especially the part about retrieving specific objects with filters.
>
> > > > To avoid hitting the database more than once, you can rewrite
> > > > minutes() to grab all the
> > > > records you are interested in (by filtering or just using all() if
> > > > that's what you want).
> > > > Then you can step through them and calculate your field, putting the
> > > > results in a dictionary.
> > > > Return the dictionary from minutes and pass this into your template
> > > > and it should work.
>
> > > > Hope this helps.
>
> > > > -Tim
>
> > > > On Tue, Feb 23, 2010 at 5:44 PM, soFh <ahmed...@gmail.com> wrote:
> > > > > Hi Tim
> > > > > Sure
>
> > > > > <table border="1" align="center" >
> > > > >    <tr>
> > > > >    <th> id </th>
> > > > >    <th> caller id </th>
> > > > >    <th> dialed Number </th>
> > > > >    <th> Call Duration </th>
> > > > >    <th> Call Cost </th>
> > > > >    <th> Call Date </th>
> > > > >    <th> Dest Channel </th>
> > > > >    <th> Application </th>
>
> > > > >    {% for call in calls %}
> > > > >        <tr>
> > > > >                <td>{{ call.id }}</td>
> > > > >                <td>{{ call.src }} </td>
> > > > >                <td>{{ call.dst }} </td>
> > > > >                <td>{{ call.minutes }}</td>
> > > > >                <td>{{ call.minz }} </td>    (dtails below)
> > > > >                <td>{{ call.calldate }}  </td>
> > > > >                <td>{{ call.dstchannel }} </td>
> > > > >     </tr>
>
> > > > > here you can see i am using call.minz , while minz is a function in
> > > > > models.py under class Ast . in this function it works fine if i put a
> > > > > static rate for all records against self.billsec but i want it to
> > > > > match with other table from Database . And am not getting if i try to
> > > > > call values from 2nd class/table in this function it doesn't work at
> > > > > all.
>
> > > > > On Feb 24, 3:30 am, Timothy Kinney <timothyjkin...@gmail.com> wrote:
> > > > > > It would help if I could see the template you were using so I could
> > see
> > > > > how
> > > > > > the fields were being filled. Can you paste it?
>
> > > > > > -Tim
>
> > > > > > On Tue, Feb 23, 2010 at 5:04 PM, soFh <ahmed...@gmail.com> wrote:
> > > > > > > For More ,
> > > > > > > Please visit this snap shot of my template view :
>
> > > > > > >http://173.45.115.106/template.jpg
>
> > > > > > > This will probably clear me , that what i want in my column "call
> > > > > > > Cost" in my datatable.
> > > > > > > thanks
>
> > > > > > > On Feb 24, 2:47 am, Timothy Kinney <timothyjkin...@gmail.com>
> > wrote:
> > > > > > > > It sounds like you should have a look at:
> > > > > > >http://docs.djangoproject.com/en/dev/ref/templates/
>
> > > > > > > > Instead of rendering straight to html you can structure the
> > html as a
> > > > > > > > template and then feed your dictionary context in. Then your
> > view
> > > > > points
> > > > > > > to
> > > > > > > > the template. If your template was called test.html then it
> > would
> > > > > > > probably
> > > > > > > > work.
>
> > > > > > > > -Tim
>
> > > > > > > > On Tue, Feb 23, 2010 at 4:35 PM, soFh <ahmed...@gmail.com>
> > wrote:
> > > > > > > > > my prefix could be changed and hence its length too ,
> > > > > > > > > so let me show you what i did to get the price from Rates
> > table
> > > > > > > > > against prefix used in Ast.dst
>
> > > > > > > > > from cdr.cdrs.models import Ast,Rates
> > > > > > > > > price=0
> > > > > > > > > for i in Ast.objects.all():
> > > > > > > > >        for x in Rates.objects.all():
> > > > > > > > >                l = len(x.prefix)
> > > > > > > > >                if x.prefix == i.dst[0:l]:
> > > > > > > > >                price = x.rate
> > > > > > > > >      cost = price * i.billsec
>
> > > > > > > > > it gives me what i want ..but its on interactive console :$ i
> > am
> > > > > > > > > really not getting where should i deploy it in my view to
> > show this
> > > > > > > > > calculation (cost of call ) .
> > > > > > > > > cause in my view i am just using it like this :
>
> > > > > > > > > def mytest(request):
>
> > > > > > > > >        cdr_table = Rates.objects.all()
> > > > > > > > >        return render_to_response('clients/test.html',
> > > > > > > > > {"calls":cdr_table,},context_instance
> > =RequestContext(request))
>
> > > > > > > > > now in html table defined in test.html i can see all the data
> > > > > coming
> > > > > > > > > in table Ast . But how i add a column in that html table
> > having
> > > > > cost
> > > > > > > > > of each call as i got in my console.
>
> > > > > > > > > thanks for your help
>
> > > > > > > > > On Feb 24, 2:16 am, Daniel Roseman <dan...@roseman.org.uk>
> > wrote:
> > > > > > > > > > On Feb 23, 9:10 pm, soFh <ahmed...@gmail.com> wrote:
>
> > > > > > > > > > > Well i was already  thinking that i am not so clear in my
> > > > > question.
> > > > > > > > > > > so better let me post my model and what i want here .
>
> > > > > > > > > > >http://dpaste.com/163776/
>
> > > > > > > > > > > sorry I missed by mistake "C" of class Rates while
> > pasting it
> > > > > on
> > > > > > > > > > > dpaste.
>
> > > > > > > > > > > Anyways there are two models.
> > > > > > > > > > > there is one field billsec in model named "Ast" which is
> > > > > duration
> > > > > > > of
> > > > > > > > > > > call. there is one field named "dst" which is "dialed
> > Number "
> > > > > .
> > > > > > > > > > > What i want is is to compare this dialed number by the
> > prefix
> > > > > given
> > > > > > > in
> > > > > > > > > > > Rates Model and then multiply that Rate with duration to
> > show
> > > > >  the
> > > > > > > > > > > cost of call.
> > > > > > > > > > > hope i am bit  clear now .
> > > > > > > > > > > Thanks in advance for any tip..
> > > > > > > > > > > regards
>
> > > > > > > > > > I don't see where you are having a problem. Your logic, as
> > you
> > > > > give
> > > > > > > it
> > > > > > > > > > above, is quite clear:
>
> > > > > > > > > >     my_prefix = my_ast.dst[:5] # or however long the prefix
> > is
> > > > > > > > > >     my_rate = Rate.objects.get(prefix=my_prefix)
> > > > > > > > > >     cost = my_rate.rate * my_ast.billsec
>
> > > > > > > > > > --
> > > > > > > > > > DR.
>
> > > > > > > > > --
> > > > > > > > > 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<django-users%2bunsubscr...@googlegroups.com>
> > <django-users%2bunsubscr...@googlegroups.com<django-users%252bunsubscr...@googlegroups.com>
>
> > > > > <django-users%2bunsubscr...@googlegroups.com<django-users%252bunsubscr...@googlegroups.com>
> > <django-users%252bunsubscr...@googlegroups.com<django-users%25252bunsubscr...@googlegroups.com>
>
> > > > > > > <django-users%2bunsubscr...@googlegroups.com<django-users%252bunsubscr...@googlegroups.com>
> > <django-users%252bunsubscr...@googlegroups.com<django-users%25252bunsubscr...@googlegroups.com>
>
> ...
>
> read more »

-- 
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.

Reply via email to