Можно также попытаться использовать кэширование, встроенное в ASP MVC:
Добавляют следующий атрибут к методу контроллера, который требуется кэшировать:
[OutputCache(Duration=10)]
В этом случае ActionResult этого будет кэшироваться в течение 10 секунд.
[еще 115] на этом здесь
Вот грязный метод для достижения этой цели (посмотрите на Групповую модель):
class Person(models.Model):
name = models.CharField(max_length=128)
def __unicode__(self):
return self.name
class Group(models.Model):
name = models.CharField(max_length=128)
_members = models.ManyToManyField(Person, through='Membership')
@property
def members(self):
return self._members.order_by('membership__date_joined')
def __unicode__(self):
return self.name
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)
Не удосужился создать декоратор свойства набора, но должно быть довольно легко имитировать установка исходного поля. Уродливый обходной путь, но, похоже, помогает.
Я думаю, это должно сработать:
class Membership(models.Model):
...
class Meta:
ordering = ['date_joined']