Я хочу отправить массив идентификаторов из моего HTML в бэкэнд Django и вернуть соответствующий запрос в качестве контекста. До сих пор у меня есть следующий код, но он просто не работает, и я не мог найти решение:Django AJAX GET-список через контекст
HTML Форма:
<form id="select_form" method="get">
<button type="submit" id="submit_selection_button" .btn-lg">Submit</button>
</form>
JQuery:
<script type="text/javascript">
$(document).ready(function() {
$("#submit_selection_button").click(function() {
selectedFoo = [1,2];
$.ajax({
type: 'GET',
url: '/',
data: {'selected_foo[]': selectedFoo}});
});
});
</script>
Django Вид:
class FooBar(TemplateView):
def dispatch(self, request, *args, **kwargs):
self.request = request
return super(FooBar, self).dispatch(request, *args, **kwargs)
def get_queryset(self):
return super(FooBar, self).get_queryset()
def get_context_data(self, **kwargs):
context = super(FooBar, self).get_context_data(**kwargs)
selected_foo = []
if(self.request.method == "GET"):
selected_foo = self.request.GET.getlist('selected_foo[]')
if(selected_foo):
bar_results = Bar.objects.filter(id__in=selected_foo)
else:
bar_results = Bar.objects.none()
context = {
'bar_results': bar_results,
}
return context
foobar = FooBar.as_view()
Так что моя проблема в том, что я получаю запрос GET, но когда я пытаюсь использовать «selected_foo», он просто пуст. Вероятно, я ошибся в части jQuery, но я новичок и не знаю, что я сделал неправильно. Пожалуйста, помогите мне и объясните. Thanks
Еще не работает ... – JohnDro
изменения 'данных: { 'selected_foo []: selectedFoo}}); 'to' data: {'selected_foo': selectedFoo}}); ' –
Я уже пробовал это. Все еще никаких изменений. На мой взгляд, это всегда относится к заявлению else. Я не уверен в форме. Должен ли быть метод = «получить» и, возможно, действие = «..»? – JohnDro