Django-autocomplete-lightを使用して、DjangoORMの要件に適合するように調整できない外部データベースの一部のフィールドを自動補完したいと思います。したがって、私はSQL Alchemyを使用してこのデータベースに接続します。Django ORMの代わりにSQL Alchemyを使用するdjango-autocomplete-light
私はこれを行う方法を見つけることができません。一例として、私は二重の列の主キーなしidフィールドがあるため動作しない(オートコンプリートは、表に対して次の代わりに、Djangoのモデルを使用したいと思います。効果的
query = (session.query(TableA.FIRSTNAME).distinct(TableA.FIRSTNAME)
.filter(TableA.FIRSTNAME.match(name)))
data = query.limit(100).all()
Iだろう。私の上記のクエリからフィールドの自動補完名を作成する代わりに、ドキュメントに示すように、Djangoの適量を使用するのが好き:
class CountryAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
# Don't forget to filter out results depending on the visitor !
if not self.request.user.is_authenticated():
return Country.objects.none()
qs = Country.objects.all()
if self.q:
qs = qs.filter(name__istartswith=self.q)
return qs
class PersonForm(forms.ModelForm):
birth_country = forms.ModelChoiceField(
queryset=Country.objects.all(),
widget=autocomplete.ModelSelect2(url='country-autocomplete')
)