【发布时间】:2017-04-01 08:18:58
【问题描述】:
我想使用 django-autocomplete-light 自动完成来自外部数据库的某些字段,这些字段无法调整以符合 DjangoORM 要求。因此我使用 SQL Alchemy 连接到这个数据库。
我不知道该怎么做。作为一个例子,我想让自动完成使用以下而不是表的 Django 模型(这不起作用,因为有一个双列主键并且没有 id 字段。
query = (session.query(TableA.FIRSTNAME).distinct(TableA.FIRSTNAME)
.filter(TableA.FIRSTNAME.match(name)))
data = query.limit(100).all()
实际上,我想让该字段自动完成上述查询中的名称。而不是使用文档中显示的 Django qs:
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')
)
【问题讨论】:
标签: python django autocomplete django-forms django-autocomplete-light