django-autocomplete-light - Wie kann ein anderes Feld als der Primärschlüssel eines Modells zurückgegeben werden?

Ich benutze Django-Autocomplete-Light

in einem Formular für ein Modell, für das ich die automatische Vervollständigung für eines seiner Felder verwenden möchte. das feld ist kein fremdschlüssel oder so, sondern nur ein ganzzahliges feld und für die automatische vervollständigung möchte ich eigentlich das gleiche modell verwenden wie das formular, das ich ausfülle.

Die von Autocomplete eingestellte Abfrage gibt jedoch die ID zurück und ich möchte das Feld "projektnummer" ausfüllen.

Haben Sie eine Ahnung, wie ich die automatische Vervollständigung so einrichten kann, dass sie nicht den Primärschlüssel des Modells, sondern ein anderes Feld zurückgibt?

auch es scheint, dass ich bei knusprigen Formularen einen Kabelfehler erhalte, wenn ich das Autocomplete-Widget für das Ganzzahlfeld verwende.

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'),
        }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage