2016-05-10 10 views
3

私はdjango 1.8でdjango-autocomplete-lightを使用しています。 時々失敗します。ここではJavaScriptコンソールのエラーは次のとおりです。django-autocomplete-lightが動作しません - select2は関数ではありません

TypeError: $(...).select2 is not a function 


    ;(function ($) { 
     $(document).on('autocompleteLightInitialize', '[data-autocomplete-light-function=select2]', function() { 
      var element = $(this); 
     // This widget has a clear button 
     $(this).find('option[value=""]').remove(); 

     $(this).select2({ 

それは昨日うまく働いたと何も変わっていませんが、今日それが機能していません。 私もdjangoスーツを使用しています。 私はこのランダムな行動を引き起こす私のdjangoのアプリケーションの間にjavascriptの非互換性があると感じますが、原因を突き止める方法はわかりません。 アイデア

# 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 

答えて

1

私はsettings.pyでINSTALLED_APPSを再配置し、それはそれを固定しているように見える:

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', 
) 
をここで

は、私のコードのすべてです

関連する問題