2016-05-10 20 views
3

Ich benutze django-autocomplete-light mit django 1.8. Manchmal schlägt es fehl. Hier ist der Javascript-Konsolenfehler:django-autocomplete-light funktioniert nicht - select2 ist keine Funktion

Es funktionierte gestern gut und nichts hat sich geändert, aber heute funktioniert es nicht. Ich benutze auch Django Anzug. Ich habe das Gefühl, dass es eine Javascript-Inkompatibilität zwischen meinen Django-Apps gibt, die dieses zufällige Verhalten verursacht, aber ich weiß nicht, wie ich die Ursache aufspüren soll. Irgendwelche Ideen?

ist hier, um alle meine Code:

# models.py 
class Sample(models.Model): 
    name = models.CharField(max_length=200) 
    def __unicode__(self): 
     return self.name 

class Doctor(models.Model): 
    name = models.CharField(max_length=200) 
    address = models.CharField(max_length=200, null=True, blank=True, default='') 
    def __unicode__(self): 
     return self.name 

class Patient(models.Model): 
    name = models.CharField(max_length=200) 
    sample = models.OneToOneField(Sample, null=True, blank=True) 
    doctor = models.ForeignKey(Doctor, null=True, blank=True, default=None) 
    def __unicode__(self): 
     return self.name 
---------- 
# urls.py 
urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^pat-sam-autocomplete/$', PatientSampleAutocomplete.as_view(), name='pat-sam-autocomplete',), 
    url(r'^pat-doc-autocomplete/$', PatientDoctorAutocomplete.as_view(), name='pat-doc-autocomplete',), 
) 
---------- 
# views.py 
class PatientSampleAutocomplete(autocomplete.Select2QuerySetView): 
    def get_queryset(self): 
     if not self.request.user.is_authenticated(): 
      return Sample.objects.none() 

     qs = Sample.objects.all() 
     if self.q: 
      qs = qs.filter(name__icontains=self.q) 

     return qs 

class PatientDoctorAutocomplete(autocomplete.Select2QuerySetView): 
    def get_queryset(self): 
     if not self.request.user.is_authenticated(): 
      return Doctor.objects.none() 

     qs = Doctor.objects.all() 
     if self.q: 
      qs = qs.filter(name__icontains=self.q) 

     return qs 
-------------- 
# admin.py 
from django import forms 
from dal import autocomplete 

class PatientForm(forms.ModelForm): 
    class Meta: 
     model = Patient 
     fields = ('__all__') 
     widgets = { 
      'sample': autocomplete.ModelSelect2(url='pat-sam-autocomplete'), 
      'doctor': autocomplete.ModelSelect2(url='pat-doc-autocomplete') 
     } 

@admin.register(Doctor) 
class DoctorAdmin(admin.ModelAdmin): 
    list_display = ('name', 'address') 

@admin.register(Sample) 
class SampleAdmin(admin.ModelAdmin): 
    list_display = ('name',) 

@admin.register(Patient) 
class PatientAdmin(admin.ModelAdmin): 
    list_display = ('name', 'sample') 
    form = PatientForm 

Antwort

1

ich die INSTALLED_APPS im settings.py neu geordnet und dass es behoben zu haben scheinen:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'dal', 
    'dal_select2', 
    'suit', 
    'myapp', 
    'django.contrib.admin', 
    'django_extensions', 
    'simple_history', 
    'django_tables2', 
    'django.contrib.admindocs', 
)