管理区域中的Django自动完成指示灯未获得结果

管理区域中的Django自动完成指示灯未获得结果,django,django-autocomplete-light,Django,Django Autocomplete Light,我在管理区面临Django Autocomplete Light的一些问题,我检查了所有配置和代码,但我不确定问题在哪里解决 似乎在管理页面中没有获得自动完成集成。它看起来像: 以下是开发的部分代码: 视图.py from dal import autocomplete from ocup.models import Ocup class OcupAutocomplete(autocomplete.Select2QuerySetView): def get_queryset(sel

我在管理区面临Django Autocomplete Light的一些问题,我检查了所有配置和代码,但我不确定问题在哪里解决

似乎在管理页面中没有获得自动完成集成。它看起来像:

以下是开发的部分代码:

视图.py

from dal import autocomplete
from ocup.models import Ocup


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

        qs = Ocup.objects.all()

        if self.q:
            qs = qs.filter(titulo__istartswith=self.q)

        return qs
class OporAdmin(admin.ModelAdmin):
    form = OcupForm
(.......)
 class Ocup(models.Model):
    familia = models.ForeignKey(Familia)
    codigo = models.CharField(max_length=10)
    titulo = models.CharField(max_length=200)

    def __str__(self):
        return self.titulo.encode('utf-8')
INSTALLED_APPS = (
'dal',
'dal_select2',
'django.contrib.admin',
(.....)
(Ocup.objects.all()在终端中使用时会带来很多对象,数据库会被填充)

forms.py:

    from ocup.models import Ocup
    from dal import autocomplete
    from django import forms


class OcupForm(forms.ModelForm):

    ocup = forms.ModelChoiceField(
        queryset=Ocup.objects.all(),
        widget=autocomplete.ModelSelect2(url='ocup-autocomplete')
    class Meta:
        model = Ocup
        fields = ('__all__')
admin.py

from dal import autocomplete
from ocup.models import Ocup


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

        qs = Ocup.objects.all()

        if self.q:
            qs = qs.filter(titulo__istartswith=self.q)

        return qs
class OporAdmin(admin.ModelAdmin):
    form = OcupForm
(.......)
 class Ocup(models.Model):
    familia = models.ForeignKey(Familia)
    codigo = models.CharField(max_length=10)
    titulo = models.CharField(max_length=200)

    def __str__(self):
        return self.titulo.encode('utf-8')
INSTALLED_APPS = (
'dal',
'dal_select2',
'django.contrib.admin',
(.....)
model.py

from dal import autocomplete
from ocup.models import Ocup


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

        qs = Ocup.objects.all()

        if self.q:
            qs = qs.filter(titulo__istartswith=self.q)

        return qs
class OporAdmin(admin.ModelAdmin):
    form = OcupForm
(.......)
 class Ocup(models.Model):
    familia = models.ForeignKey(Familia)
    codigo = models.CharField(max_length=10)
    titulo = models.CharField(max_length=200)

    def __str__(self):
        return self.titulo.encode('utf-8')
INSTALLED_APPS = (
'dal',
'dal_select2',
'django.contrib.admin',
(.....)
设置.py

from dal import autocomplete
from ocup.models import Ocup


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

        qs = Ocup.objects.all()

        if self.q:
            qs = qs.filter(titulo__istartswith=self.q)

        return qs
class OporAdmin(admin.ModelAdmin):
    form = OcupForm
(.......)
 class Ocup(models.Model):
    familia = models.ForeignKey(Familia)
    codigo = models.CharField(max_length=10)
    titulo = models.CharField(max_length=200)

    def __str__(self):
        return self.titulo.encode('utf-8')
INSTALLED_APPS = (
'dal',
'dal_select2',
'django.contrib.admin',
(.....)
正在加载javascript文件:

我想我已经添加了所有相关信息,但遗漏了一些信息,请告诉我

---更新--- 我注意到控制台出现以下错误:

所以select2没有被加载。。。。检查网络时,我看到jquery被加载了两次,但这是这个问题的根本原因。但是,为什么它包含两次,以及如何使管理区域只加载一次


解决方案是运行
python manage.py collectstatic