【发布时间】:2016-10-06 15:32:52
【问题描述】:
我正在使用 django-autocomplete-light
在模型的表单中,我想在其中一个字段上使用自动完成功能。该字段不是外键或其他东西,而只是一个整数字段,对于自动完成,我实际上想使用与我填写的表单相同的模型。
自动完成的查询集返回 ID,我想填写“projektnummer”字段。
任何线索我可以设置自动完成,以便它返回的不是模型的主键,而是其他一些字段?
当我在整数字段上使用自动完成小部件时,似乎我从脆的表单中遇到了有线故障。
models.py
class KombiPublikation(models.Model):
typid = models.ForeignKey('KombiPublikationsTypMedium', verbose_name='Outputtyp', db_column='typid') # publikationstyp.id or publikationstypinfo.typid
[...]
projektnummer = models.IntegerField(verbose_name='Projektnr.', default=0, blank=True)
[...]
views.py
class SearchProjectinFormAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
qs = KombiPublikation.objects.filter(typid__in=[222, 223, 224]).filter(zeigen=1)
if self.q:
qs = qs.filter(Q(projektnummer__contains=self.q))
return qs
forms.py
class KombiPublikationForm(forms.ModelForm):
class Meta:
model = KombiPublikation
#fields = []
exclude = ['pub_sprache']
widgets = {
'typid': autocomplete.ModelSelect2(url='output:typ-autocomplete', forward=['typtyp']),
'projektnummer': autocomplete.ModelSelect2(url='output:projekt-form-autocomplete'),
}
【问题讨论】:
标签: jquery django jquery-select2 django-crispy-forms django-autocomplete-light