2016-11-03 5 views
0

Ich benutze Django-Autocomplete-Licht 3.2.1 in Django 1.10.2. Im Feld Admin statt Autocomplete sehe ich ein Auswahlfeld. Ich folgte den Anweisungen von here.Django Autocomplete funktioniert nicht

Paket urls.py

urlpatterns = i18n_patterns(
url(r'^admin/', admin.site.urls), 
url(r'^autocomplete/', include('apps.vehicle.urls')),) 

Innen Ordner apps Ich habe ein Fahrzeug-App. Im Inneren habe ich folgende 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) schließlich urls.py:

from django.conf.urls import url 

from .views import ModelAutocomplete 

urlpatterns = [ 
    url(
     r'^model-autocomplete/$', 
     ModelAutocomplete.as_view(), 
     name='model-autocomplete', 
    ), 
] 

Aber Autocomplete funktioniert nicht. In admin sehe ich nur das übliche Admin-Auswahlfeld. Was kann in meinen Codes falsch sein?

Antwort

1

Zuerst überprüfte ich Firefox-Konsole und fand einige Fehler, die bedeuten, dass entweder einige Codefehler oder statische Dateien nicht geladen sind. Danach überprüfte ich den statischen Ordner auf meinem Server und entdeckte, dass der Autocomplete-Ordner nicht vorhanden war. Führen Sie dann den folgenden Code aus, um das Problem zu beheben.

python manage.py collectstatic 
Verwandte Themen