2017-08-09 135 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

一點問題都沒有 - 很高興它的工作吧! –