首先我想说,我认为 autocomplete_light 包是一个不错的、维护良好的包,但作为一个相对新手,我在使用它时遇到了一些问题。
我使用“pip install django-autocomplete-light”升级了我的 autocomplete_light 版本。
据我所知,这不应该安装 v2 或项目的开发版本 - 从此链接读取。
检查我的虚拟环境中的站点包目录我安装了以下内容:django_autocomplete_light-2.0.0a8-py2.7.egg-info
有没有其他方法可以检查版本?例如,我可以做这样的事情吗?
python manage.py shell
import autocomplete_light
print autocomplete_light.VERSION
(这不起作用)
我的主要问题是升级后我在 django 项目中看到以下错误消息:
“模块”对象没有属性“get_widgets_dict”
我的 forms.py 看起来像这样:
from django.db import models
from django import forms
from django.forms import ModelForm
import autocomplete_light
from vehicle_admin_ac3.models import mycar
class mycarForm(autocomplete_light.ModelForm):
year = forms.DateField(widget=forms.TextInput(attrs=
{
'id':'datepicker'
}))
class Meta:
widgets = autocomplete_light.get_widgets_dict(mycar)
model = mycar
exclude = ['owner', 'uploaded']
我查看了文档,其中提到了为什么您不应再直接使用小部件,但我没有看到如何解决我的问题的明确说明
我决定使用以下命令下载并安装我认为是最新的 v2 test_project:
AUTOCOMPLETE_LIGHT_VERSION="v2"
rm -rf autocomplete_light_env/
virtualenv autocomplete_light_env
source autocomplete_light_env/bin/activate
pip install -e git+git://github.com/yourlabs/django-autocomplete-light.git@$AUTOCOMPLETE_LIGHT_VERSION#egg=autocomplete_light
cd autocomplete_light_env/src/autocomplete-light/test_project
pip install -r requirements.txt
./manage.py runserver
/non_admin/widget/add/ 中的示例可以满足我的要求,但是当我检查 form.py 以获取此示例时,它使用的方法与我之前使用的方法相同。
from django import forms
import autocomplete_light
from models import Widget
# in the case of this example, we could just have:
# WidgetForm = autocomplete_light.modelform_factory(Widget)
# but we'll not use this shortcut
class WidgetForm(forms.ModelForm):
class Meta:
widgets = autocomplete_light.get_widgets_dict(Widget)
model = Widget
我现在很困惑我需要去哪里修复我的代码或获取我想要做的简单示例。我将不胜感激任何信息或指导。