как перемешать список в django views.py?

0

Я пытаюсь перетасовать список в django.views

views.py

import random

def all_songs( request):
    songs_list = Songs.objects.all()
    songs_list=random.shuffle(songs_list)

но после ввода этого кода появляется ошибка, показывающая, что объект "QuerySet" не поддерживает назначение элемента ". как я могу сделать это без назначения элемента?

Теги:
python-3.x
django-views
django-queryset

2 ответа

2
Songs.objects.order_by('?')

возвращает случайно упорядоченный запрос

см. документы здесь

  • 2
    обратите внимание, что это может быть очень медленное решение для большого количества строк для некоторых обратных баз данных, например MySql, выборка строк «как есть» и перестановка в ОЗУ могут выполняться быстрее.
-2

конвертировать список (здесь song_list) в список, а затем перетасовывать его....

def all_songs( request): songs_list = list(Songs.objects.all()) random.shuffle(songs_list)

больше не возникает ошибка запроса

Ещё вопросы

Сообщество Overcoder
Наверх
Меню