Как упорядочить запросы по набору запросов с субботы на воскресенье в django?

Я хочу заказать кверисет посещаемости с субботы по пятницу. Как я могу этого добиться?

class ReportsTogether(models.Model):
    user = models.ForeignKey(User,on_delete=CASCADE,verbose_name=_("Report For User"))
    user_log = models.ManyToManyField(UserTimeInOut,verbose_name=_("User Attendance"))
    user_break = models.ManyToManyField(UserBreak,verbose_name=_("User Break"))
    user_lunch = models.ManyToManyField(UserLunchBreak,verbose_name=_("User Lunch 
    Break"))

    time = models.DateField(verbose_name=_("Date"),null=True)

Вы можете использовать комбинацию order_by и week_Day в наборе запросов, чтобы упорядочить его по дням недели.

Что-то вроде этого:

qs=Modelname.objects.all().order_by('-time__week_day')

Это упорядочит результат по дням недели в порядке убывания от сб до воскресенья, так как день 1 - воскресенье, а день 7 - суббота. воскресенье, а день 7 - суббота.

Это должно сделать то, что вы хотите:

from django.db.models import F
qs = ReportsTogether.objects.annotate(my_week_day=F('time__week_day')%7).order_by('my_week_day')

Согласно doc: "Принимает целочисленное значение, представляющее день недели от 1 (воскресенье) до 7 (суббота)", вам просто нужно получить значение дня недели и взять его по модулю от 7

Вернуться на верх