私はdjango-autocomplete-lightを使用しています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'),
}
それは魅力的に機能しました。この答えをありがとう。 –