2017-08-09 137 views
0

我有可以是每天特殊的菜单项目的项目模型特定的顺序排序的项目。如果他们是每日特价,我希望他们在星期一开始的一周中的某一天订购。我相信这个观点应该在做分类。我有一个领域的典范,我想一个视图基于价值的领域

这里是我的models.py

class Item(models.Model): 
    CATEGORY_CHOICES = (('Sandwich', 'Sandwich'), ('Salad', 'Salad'), ('Slider', 'Slider'), ('Side', 'Side'), ('Drink', 'Drink')) 
    DAYS = ((0,'Monday'), (1,'Tuesday'), (2,'Wednesday'), (3,'Thursday'), (4,'Friday'), (5,'Saturday'), (6,'Sunday')) 

    name = models.CharField(max_length=50) 
    description = models.TextField() 
    category = models.CharField(max_length=50) 
    price = models.DecimalField(max_digits=6, decimal_places=2) 
    category = models.CharField(max_length=30, choices=CATEGORY_CHOICES) 
    order = models.PositiveSmallIntegerField(default=0, blank=True, null=True) 
    day = models.CharField(max_length=30, choices=DAYS, unique=True, blank=True) 

    publish = models.DateField(auto_now=False, auto_now_add=False), 
    updated = models.DateTimeField(auto_now=True, auto_now_add=False) 

    def __str__(self): 
     return self.name 

这里是我的views.py:

def specials(request): 
    # days = (('Monday'), ('Tuesday'), ('Wednesday'), ('Thursday'), ('Friday'), ('Saturday'), ('Sunday')) 
    specials_list = Item.objects.filter(special = True) 
    # specials_list = sorted(specials_list, key=days) //Trying to sort the list by days of the week 
    context = { 
     'specials_list': specials_list, 
    } 
    return render(request, 'menu/specials.html', context) 

我觉得我真的很接近这里。提前致谢!

回答

1

QuerySet API让你使用order_by方法来订购结果查询集。

所以你的观点里,你可以这样做:

specials_list = Item.objects.filter(special = True).order_by('day') 

如果您需要按降序排列,您可以用.order_by('-day')取代.order_by('day')

+0

D'哦,忘了引号的一天,当我摆弄。谢谢! – Chris

+1

一点问题都没有 - 很高兴它的工作吧! –