我有以下内容模型.py. 在
from django.db import models
class Address(models.Model):
addr = models.CharField(max_length=150)
def __unicode__(self):
return u'%s' % (self.addr)
class Anniversary(models.Model):
date = models.DateField()
def __unicode__(self):
return u'%s' % (self.date)
class Person(models.Model):
name = models.CharField(max_length=50)
birthday = models.DateField()
anniversary = models.ForeignKey(Anniversary)
address = models.ForeignKey(Address)
def __unicode__(self):
return u'%s %s %s %s' % (self.name, self.birthday, self.anniversary, self.address)
我想把所有条目的内容打印到我的模板中。但按出生日期和当前日期排序。i、 最近的名字。最好的办法是什么。我应该先对它进行排序,然后将其附加到列表或dict中吗?在
任何建议都很好。在
谢谢
因为我个人比较喜欢用a型字体来分类。我倾向于使用sorted in render_to_响应进行单值排序,或使用order_by进行多值排序。在return语句中使用sorted可以在某种程度上分割视图/模板之间的差异,因为Django视图并不完全是控制器。不管怎样,这只是我的喜好。也可以在模板中使用dictsort进行单值排序。在
您已经指出要使用多个值进行排序,第一个值按最近的出生日期排序,第二个按名称排序。为此,我将在视图中使用order_by,然后注释我的返回语句:
在模板中,您只需执行以下操作:
^{pr2}$你可以在模型的元类中添加默认的排序,例如
在你的模板中,它很简单:
^{pr2}$如果需要在视图中自定义排序(根据请求对象筛选出人员):
注意:通过参数
order_by('-attr')
在你的排序前加一个减号,会颠倒顺序。在正如@DanielEriksson所提到的,如果你的案子不是假设的,你似乎应该简化事情。在
我想你是在找这个:
在您的视图中,您可以使用以下方法获取当前日期:
^{pr2}$然后:
希望有帮助!在
相关问题 更多 >
编程相关推荐