Berdam
Berdam

Reputation: 1

Select2 more filter in Django

i have this code below, where i'm using Select2 in my select component, it's working fine, as i'm writing it's looking, but i've already searched the internet to find examples of how to customize the query set that runs in the widget, some help ?

select2 works very well

class ConsumidorWidget(s2forms.ModelSelect2Widget):
search_fields = [
    "nome__icontains",
    "email__icontains",
]

class ConsumoForm(forms.ModelForm):
class Meta:
    model = Consumo
    fields = ('id', 'consumidor', 'mesconsumo', 'anoconsumo', 'valorapagar', 'valorhidrometro',
              'dataleitura', 'datamissao', 'datavencimento', 'foipago',)

    exclude = ('bairro',)
    mesconsumo = forms.ChoiceField()

    widgets = {
        "consumidor": ConsumidorWidget,
    }

Upvotes: 0

Views: 623

Answers (1)

strykb
strykb

Reputation: 11

Use ModelChoiceField:

consumidor = forms.ModelChoiceField(
    queryset=Consumo.objects.all(),
    widget=ConsumidorWidget)

Or you can try overriding the __init__ method:

def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['consumidor'].queryset = Consumo.objects.all()

Upvotes: 1

Related Questions