Django 我有一个带有字段的模型,我希望视图能够根据字段的值按特定顺序对项目进行排序
我有一个菜单项的项目模型,可以是每日特价。如果是每日特价,我希望从周一开始,在一周中的某一天订购。我认为视图应该进行排序 这是我的模特Django 我有一个带有字段的模型,我希望视图能够根据字段的值按特定顺序对项目进行排序,django,python-2.7,Django,Python 2.7,我有一个菜单项的项目模型,可以是每日特价。如果是每日特价,我希望从周一开始,在一周中的某一天订购。我认为视图应该进行排序 这是我的模特 class Item(models.Model): CATEGORY_CHOICES = (('Sandwich', 'Sandwich'), ('Salad', 'Salad'), ('Slider', 'Slider'), ('Side', 'Side'), ('Drink', 'Drink')) DAYS = ((0,'Monday'),
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
以下是我的视图.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)
我觉得我离这里很近。提前谢谢 允许您使用order_by方法对生成的查询集进行排序
因此,在您的视图中,您可以执行以下操作:
specials_list = Item.objects.filter(special = True).order_by('day')
如果需要降序,可以将.order\u by'day'替换为.order\u by'-day' 哦,忘了那天我修修补补时引用的话了。非常感谢。