Как настроить autocomplete_light в Django 2.2? - PullRequest
0 голосов
/ 03 июля 2019

Я попытался настроить 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 или есть какие-то проблемы в моем коде. Пожалуйста, исправьте или указали на ошибки.

...