我有一个返回节目列表的模板标记:
def get_all_shows():
allshows = Shows.objects.all().order_by("-broadcast_day", "-broadcast_time")[:9].reverse()
tags = Shows.tags.all()
return {'allshows': allshows, 'tags': tags}在my models中有一个日期选择字段:
class Shows(models.Model):
CHOICES = (
('Monday', 'Monday'),
('Tuesday', 'Tuesday'),
('Wednesday', 'Wednesday'),
('Thursday', 'Thursday'),
('Friday', 'Friday'),
('Saturday', 'Saturday'),
('Sunday', 'Sunday'),
)
broadcast_day = models.CharField(default=1,max_length=12, choices=CHOICES, blank=True)
broadcast_time = models.TimeField(default=datetime.now, blank=True)我的问题是,如何按天对列表进行排序,以便最近的一天会显示相应的节目?
还有,有没有可能计算出那天的日期?
谢谢。
发布于 2014-09-10 18:04:47
如果我没理解错你的问题,你需要使用Django Custom Model Manager
在Models.py中:
class ShowManager(models.Manager):
def my_custom_method(self):
#some customizations !
return super(ShowManager, self).my_custom_method().filter(#some filters here)
class Show(models.Model):
CHOICES = (
('Monday', 'Monday'),
('Tuesday', 'Tuesday'),
('Wednesday', 'Wednesday'),
('Thursday', 'Thursday'),
('Friday', 'Friday'),
('Saturday', 'Saturday'),
('Sunday', 'Sunday'),
)
objects = models.Manager()
my_customization = ShowManager()
broadcast_day = models.CharField(default=1,max_length=12, choices=CHOICES, blank=True)
broadcast_time = models.TimeField(default=datetime.now, blank=True)现在你可以使用了,Show.my_customization!(如Show.objects.all() )在您的视图中!
https://stackoverflow.com/questions/25755084
复制相似问题