Estou usando Django com django-autocomplete-light e Select2 para criar um campo autocomplete. O campo Select2 é adicionado dinamicamente à página quando outro campo é selecionado. Ele busca dados de uma visualização autocomplete do Django, e tudo funciona bem.
Agora, preciso filtrar o queryset na minha visualização autocomplete com base em um parâmetro extra (argId). No entanto, não tenho certeza de como passar esse parâmetro corretamente.
JavaScript (Inicialização Select2)
function getElement(argId) {
let elementSelect = $("<select></select>");
let elementDiv = $(`<div id='element_id' style='text-align: center'></div>`);
elementDiv.append(elementSelect);
$(elementSelect).select2({
ajax: {
url: "/myautocomplete/class",
data: function (params) {
return {
q: params.term, // Search term
arg_id: argId // Pass extra parameter
};
},
processResults: function (data) {
return {
results: data.results // Ensure correct format
};
}
},
placeholder: "Element...",
minimumInputLength: 3
});
return elementDiv;
}
Django Autocomplete View
class ElementAutocomplete(LoginRequiredMixin, autocomplete.Select2QuerySetView):
def get_queryset(self):
qs = MyModel.objects.filter(...)
Quero passar argId do JavaScript para a visualização do Django para que o queryset seja filtrado adequadamente. No entanto, não tenho certeza se minha abordagem está correta ou como fazer isso.
Agradeço qualquer sugestão ou melhoria. Obrigado!