Dear Gurus,
I've made a custom method for getting the score (from django-voting)
for a giving Model:
class Link(models.Model):
episode = models.ForeignKey("Episode", related_name="links")
url = models.CharField(max_length=255, unique=True, db_index=True)
def __unicode__(self):
return self.url
def get_score(self):
return Vote.objects.get_score(self)['score']
Now I want to make a custom manager to getting the top-scored links
for the given episode. AFAIK, you can't sort by a custom method, so
I'm trying to apply the ordering through sorted(), like this links
says:
http://stackoverflow.com/questions/981375/using-a-django-custom-model-method-property-in-order-by
http://stackoverflow.com/questions/883575/custom-ordering-in-django
So, what I have now is this:
class LinkGetTopScores(models.Manager):
def get_top_score(self):
return sorted(self.filter(episode=self.episode), key=lambda n:
n.get_score)
class Link(models.Model):
episode = models.ForeignKey("Episode", related_name="links")
url = models.CharField(max_length=255, unique=True, db_index=True)
get_top_score = LinkGetTopScores()
....
So of course this isn't working because of the self.episode stuff...
But I've to filter somehow by episode (the ForeignKey), and I don't
know how. Is there anyway of doing this?? What I'm doing is right or
there would be an easier way of doing this?
Thank you,
Andres
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.