Whoops, wow that really was basic Python.  Sorry for the spam; of
course I know there's a difference between calling a method and
calling an attribute...how embarassing. =)

Thanks for your help Anssi.  Also thanks for not adding, ", you
moron!" to the end of each sentence...

On Feb 19, 9:47 am, akaariai <akaar...@gmail.com> wrote:
> On Feb 19, 3:38 am, Gchorn <guillaumech...@gmail.com> wrote:
>
>
>
>
>
>
>
>
>
> > Hello All,
>
> > So in my models.py file, I have:
>
> > class Player(models.Model):
> >         team = models.ForeignKey(Team)
> >         first_name = models.CharField(max_length=100)
> >         last_name = models.CharField(max_length=100)
> >         gp = models.IntegerField(max_length=2) #games played
> >         mp = models.IntegerField(max_length=4) #minutes played
> >         def mpg(self): #minutes per game
> >                 return self.mp/self.gp
> >         def __unicode__(self):
> >                 return self.first_name+' '+self.last_name
>
> > When I run "python manage.py shell" and try to pull up a player's
> > "mpg", I get:
>
> > >>> p = Player.objects.get(last_name='Durant')
> > >>> p
>
> > <Player: Kevin Durant>>>> p.mp
> > 1027
> > >>> p.gp
> > 27
> > >>> p.mpg
>
> > <bound method Player.mpg of <Player: Kevin Durant>>
>
> > How do I get the API to return '38' and not <bound method of blah blah
> > blah>?  I realize this probably has something to do with telling the
> > models.py file how to represent p.mpg with some kind of __unicode__()
> > method, but I don't know exactly what that code should be or where it
> > should go relative to the "def mpg(self)" method...
>
> mpg is a method, so call it:
> p.mpg()
>
> If you want to have p.mpg returning the value, you could use a
> property:
> def _get_mpg(self):
>     return self.mp/self.gp
> mpg = property(_get_mpg)
>
> There isn't anything special about models.py in this regard, this is
> just standard Python. So, I suggest learning a little more about
> Python. If you go through trial-error learning here you are in for a
> long ride.
>
>  - Anssi

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

Reply via email to