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}};