Django не может преобразовать queryset в список в js массив

Используя Django, у меня есть представление, которое извлекает набор запросов и пытается преобразовать его в список как контекст шаблона, который затем передается в массив javascript, однако, как будто набор запросов не преобразуется в реальный список, поскольку валидация javascript не принимает список и, таким образом, валидация не работает.

Я также создал обычный список, а не из набора запросов, и он работает так, как я ожидаю для моей JS валидации, но все, что я пробовал при преобразовании набора запросов в список, javascript просто не принимает его в массив.

Я также попытался преобразовать список в json, как я прочитал в Интернете, и все еще не работает.

Я попробовал свой собственный цикл for на наборе queryset для добавления в новый список, но тоже ничего не получилось.

Пожалуйста, посмотрите следующий код:

View (ручной список на python, который работает проверено и испытано)

mylist= ['sid', 'john']
context = {"mylist": mylist}

View (первая попытка преобразования queryset в список)

test = User.objects.values_list('username', flat=True)
mylist = list(test)
context = {"mylist": mylist}

View (вторая попытка преобразования queryset в список в json)

test = User.objects.values_list('username', flat=True)
mylist= json.dumps(list(test))
context = {"mylist": mylist}

Шаблон (с javascript)

let listNames = {{mylist|safe}};

  if ( listNames.includes(x.toLowerCase()) ) {
    text = x + ' allready taken.';
  }

Что я делаю неправильно при преобразовании queryset в список для принятия массива javascript в шаблоне?

Помощь будет очень признательна. Спасибо

Изменить тебя views.py.

test = list(User.objects.filter(column_name='Value you want to fetch').values())
context = json.dumps({"mylist":test})
return render(request, "your JS location", context})

Используйте escapejs в своих Javascript

let listNames = {{mylist|escapejs}};

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