yourlabs / django-autocomplete-light

A fresh approach to autocomplete implementations, specially for Django. Status: v4 alpha, v3 stable, v2 & v1 deprecated.
https://django-autocomplete-light.readthedocs.io
MIT License
1.8k stars 467 forks source link

Django-autocomplete-light did not work with Django_fiters #891

Open rujun-dai opened 7 years ago

rujun-dai commented 7 years ago

I am using django-autocomplete-light with django_filters. I looked django-filter with django autocomplete-light, but my autocomplete doesn't work.

Models.py:

class ProfessionalDevelopment(models.Model):
   Name = models.CharField("Professional Development", max_length=20,default = "None")
   ProfessionalExperience = models.ManyToManyField(Person, through='PersonToProfessionalDevelopment')

class PersonToProfessionalDevelopment(models.Model):
   PersonID = models.ForeignKey(Person,  on_delete=models.CASCADE)
   ProfID = models.ForeignKey(ProfessionalDevelopment,  on_delete=models.CASCADE)
   Desc = models.CharField("Professional Development Description", max_length=30, default="None")

Views.py:

class ProfessionalDevelopmentAutocomplete(autocomplete.Select2QuerySetView):
 def get_queryset(self):
    qs = ProfessionalDevelopment.objects.all()
    if self.q:
        qs = qs.filter(name__istartswith=self.q)
    return qs

urls.py:

urlpatterns = [url(r'^search/ProfessionalDevelopment-autocomplete/$', ProfessionalDevelopmentAutocomplete.as_view(),
    name='ProfessionalDevelopment-autocomplete']

Filters.py:

ProfessionalDevelopment = django_filters.CharFilter(name='professionaldevelopment__Name', lookup_expr='icontains', widget=autocomplete.ModelSelect2(url='RSR:ProfessionalDevelopment-autocomplete'))

I got an error says 'list' object has no attribute 'queryset'. Then I changed the code to autocomplete.Select2 instead of autocomplete.ModelSelect2 (according to https://github.com/yourlabs/django-autocomplete-light/issues/763). Although no error, but I can not type in the text input box. Could someone help me? Thanks

jpic commented 6 years ago

What do you mean you cannot type in input box ?

yangwk4464 commented 1 year ago

Encounter the same issue, i can see the input widget, but widget just can not input.