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'

哦,忘了那天我修修补补时引用的话了。非常感谢。