Django sort export csv by date most recent first

Я новичок в django, я пытаюсь сортировать мои csv по дате в моем представлении. Я могу экспортировать мои расписания в csv и отобразить их в моем представлении, но я не знаю, как отсортировать их по дате по самому последнему. Но в моем представлении, а не в моем каталоге.

В моем шаблоне это выглядит следующим образом :

  • export_21_11_2021-151707.csv
  • export_22_11_2021-151707.csv
  • export_23_11_2021-151707.csv

Но я хочу отсортировать по дате самый последний следующим образом :

  • export_23_11_2021-151707.csv
  • export_22_11_2021-151707.csv
  • export_21_11_2021-151707.csv

Моя функция экспорта

    def vm_schedule_export():
    timestr = time.strftime("%d_%m_%Y-%H%M%S")
    schedules = VmSchedule.objects.all().values('schedule', 'action', 'dow',
                                                'dom', 'mon', 'h', 'm',
                                                'pause', 'vms__name')
    media_url = settings.MEDIA_ROOT
    if not os.path.exists(f'{media_url}appli'):
        os.makedirs(f'{media_url}appli')
    if not os.path.exists(f'{media_url}appli/vm'):
        os.makedirs(f'{media_url}appli/vm')
    if not os.path.exists(f'{media_url}'
                          f'appli/vm/schedule_export'):
        os.makedirs(f'{media_url}appli/vm/schedule_export')
    with open(
            f'{media_url}appli/vm/schedule_export/export_' + timestr + '.csv',
            mode='w', encoding='utf8') as csv_file:
        fieldnames = ['nom', 'action', 'dow', 'dom', 'mon', 'h', 'm', 'pause',
                      'vms']
        writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
        writer.writeheader()
        for k in range(schedules.count()):
            writer.writerow({'nom': schedules[k]["schedule"],
                             'action': schedules[k]["action"],
                             'dow': schedules[k]["dow"],
                             'dom': schedules[k]["dom"],
                             'mon': schedules[k]["mon"],
                             'h': schedules[k]["h"],
                             'm': schedules[k]["m"],
                             'pause': schedules[k]["pause"],
                             'vms': smart_str(schedules[k]["vms__name"])})

и где я показываю весь экспорт :

    def vm_schedule_download(request):
    media_url = settings.MEDIA_ROOT
    if not os.path.exists(f'{media_url}appli'):
        os.makedirs(f'{media_url}appli')
    if not os.path.exists(f'{media_url}appli/vm'):
        os.makedirs(f'{media_url}appli/vm')
    if not os.path.exists(f'{media_url}'
                          f'appli/vm/schedule_export'):
        os.makedirs(f'{media_url}appli/vm/schedule_export')
    filenames = os.listdir(f'{media_url}appli/vm/schedule_export')
    return render(request, 'appli/vm/vm_schedule_download.html',
                  {'filenames': filenames})

Мой шаблон :

{% for i in filenames %}
{{ i }}
{% endfor %}

Я нашел решение с помощью os.path.getmtime. Решение уже было найдено в этой теме stackoverflow.

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