管理区域中的 Django Autocomplete Light 没有得到结果
Django Autocomplete Light in admin area is not getting result
我在管理区域遇到 Django Autocomplete Light 的一些问题,我仔细检查了所有配置和代码,但我不确定要解决的问题在哪里。
似乎在管理页面中没有获得自动完成集成。看起来像:
以下是开发的部分代码:
views.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
(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
class OporAdmin(admin.ModelAdmin):
form = OcupForm
(.......)
model.py
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')
settings.py
INSTALLED_APPS = (
'dal',
'dal_select2',
'django.contrib.admin',
(.....)
正在加载 javascript 个文件:
我认为我添加了所有相关信息,如有遗漏请告诉我。
---更新---
我注意到控制台出现以下错误:
So select2 isn't being loading....检查网络,我看到jquery被加载了两次,但这是这个问题的根本原因。但是,为什么它包含两次,以及如何使管理区域只加载一次?
解决方案是 运行 python manage.py collectstatic
我在管理区域遇到 Django Autocomplete Light 的一些问题,我仔细检查了所有配置和代码,但我不确定要解决的问题在哪里。
似乎在管理页面中没有获得自动完成集成。看起来像:
以下是开发的部分代码:
views.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
(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
class OporAdmin(admin.ModelAdmin):
form = OcupForm
(.......)
model.py
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')
settings.py
INSTALLED_APPS = (
'dal',
'dal_select2',
'django.contrib.admin',
(.....)
正在加载 javascript 个文件:
我认为我添加了所有相关信息,如有遗漏请告诉我。
---更新---
我注意到控制台出现以下错误:
So select2 isn't being loading....检查网络,我看到jquery被加载了两次,但这是这个问题的根本原因。但是,为什么它包含两次,以及如何使管理区域只加载一次?
解决方案是 运行 python manage.py collectstatic