Reputation: 225
I'm using django-autocomplete-light 3.2.1 in django 1.10.2. In admin instead of autocomplete field I see a select field. I followed the instructions from here.
package urls.py
urlpatterns = i18n_patterns(
url(r'^admin/', admin.site.urls),
url(r'^autocomplete/', include('apps.vehicle.urls')),)
Inside apps folder I have a vehicle app. Inside I have following codes. 1) views.py:
from dal import autocomplete
from .models import Model
class ModelAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Don't forget to filter out results depending on the visitor !
if not self.request.user.is_authenticated():
return Model.objects.none()
qs = Model.objects.all()
if self.q:
qs = qs.filter(name__istartswith=self.q)
return qs
2) forms.py:
from django import forms
from dal import autocomplete
from .models import Model, ChassisCode
class ChassisCodeForm(forms.ModelForm):
test_field = forms.ModelChoiceField(
queryset=Model.objects.all(),
widget=autocomplete.ModelSelect2(url='model-autocomplete')
)
class Meta:
model = ChassisCode
fields = ('__all__')
3) admin.py:
class ChassisCodeAdmin(admin.ModelAdmin):
form = ChassisCodeForm
admin.site.register(ChassisCode, ChassisCodeAdmin)
4) finally urls.py:
from django.conf.urls import url
from .views import ModelAutocomplete
urlpatterns = [
url(
r'^model-autocomplete/$',
ModelAutocomplete.as_view(),
name='model-autocomplete',
),
]
But, autocomplete does not work. In admin I see only common admin select field. What may be wrong in my codes?
Upvotes: 3
Views: 3407
Reputation: 91
Making the
list_display = ('balabala','balabala',)
before the form in your ModelAdmin, this works for me.
Upvotes: 0
Reputation: 225
First, I checked Firefox console and found few errors which mean that either there are some code errors or static files are not loaded. After that I checked static folder in my server and discovered that autocomplete folder was not there. Then, just run the following code to solve the issue.
python manage.py collectstatic
Upvotes: 1