Я попытался настроить autocomplete_light для django2.2, но я получаю некоторые ошибки, потому что для версии django я думаю. Первоначально это было связано с
render() got an unexpected keyword argument 'renderer'
это исправлено добавлением renderer=None
в функцию рендеринга в widgets.py
. После этого эта ошибка from django.core import urlresolvers its depreciated in django 2.2
. Так что я использовал, from django.urls import reverse
(в base.py). затем ошибка изменилась на function' object has no attribute 'NoReverseMatch'
.
autocomplete_light_registry.py
from autocomplete_light import shortcuts as autocomplete_light
from django.db.models import Q
from assets.models import Dealer
class DealerAutocomplete(autocomplete_light.AutocompleteModelBase):
autocomplete_js_attributes = {
'placeholder' : 'Region'
}
attrs={
'placeholder':'Region',
'class':'form-control',
'data-autocomplete-minimum-characters': 1,
}
def choices_for_request(self):
q = self.request.GET.get('q','')
choices = self.choices.filter(is_deleted=False)
if q:
choices = choices.filter(Q(region__istartswith=q))
return self.order_choices(choices)[0:self.limit_choices]
autocomplete_light.register(Dealer, DealerAutocomplete)
forms.py
class DealerForm(forms.ModelForm):
class Meta:
model = Dealer
fields = ('region','dealer_name','type_dealer','address','loc_latitude','loc_longitude','mobile','phone','email')
widgets = {
"region": autocomplete_light.ChoiceWidget('DealerAutocomplete'),
'dealer_name' : forms.TextInput(attrs={'class':'form-control', 'placeholder':'Dealer name'}),
'type_dealer' : forms.Select(attrs={'class':'form-control', 'placeholder':'Dealer Type'}),
'address' : forms.Textarea(attrs={'class':'form-control', 'placeholder':'Address'}),
'loc_latitude' : forms.TextInput(attrs={'class':'form-control', 'placeholder':'Location Latitude'}),
'loc_longitude' : forms.TextInput(attrs={'class':'form-control', 'placeholder':'Location Longitude'}),
'mobile' : forms.TextInput(attrs={'class':'form-control', 'placeholder':'Mobile'}),
'phone' : forms.TextInput(attrs={'class':'form-control', 'placeholder':'Phone'}),
'email' : forms.EmailInput(attrs={'class':'form-control', 'placeholder':'Email'})
}
Что я хочу знать, работает ли autocomplete_light в django2.2 или есть какие-то проблемы в моем коде. Пожалуйста, исправьте или указали на ошибки.