首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django .order_by -day

Django .order_by -day
EN

Stack Overflow用户
提问于 2014-09-10 07:29:45
回答 1查看 190关注 0票数 0

我有一个返回节目列表的模板标记:

代码语言:javascript
复制
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中有一个日期选择字段:

代码语言:javascript
复制
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)

我的问题是,如何按天对列表进行排序,以便最近的一天会显示相应的节目?

还有,有没有可能计算出那天的日期?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-09-10 18:04:47

如果我没理解错你的问题,你需要使用Django Custom Model Manager

Models.py中:

代码语言:javascript
复制
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() )在您的视图中!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25755084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档