Mein Problem mit django-autocomplete-light (dal 3) ist das im Admin, anstatt die Auswahl entsprechend tom mein angegebenes Feld (dh birth_nation
siehe forms.py
Abschnitt), Bekomme ich immer eine Liste der str Werte meiner Queryset-Objekte (siehe Abschnitt # models.py), die tatsächlich das last_name
Feld ist.Django-Autocomplete-Licht gibt Objektnamen anstelle von entsprechenden Feldwerten zurück
# models.py
class MyModel(models.Model):
id_name = models.CharField(primary_key=True, max_length=255)
first_name = models.CharField(max_length=255, blank=True, null=True)
middle_name = models.CharField(max_length=255, blank=True, null=True)
last_name = models.CharField(max_length=255)
birth_city = models.CharField(max_length=255, blank=True, null=True)
birth_nation = models.CharField(max_length=255, blank=True, null=True)
def __str__(self):
return self.last_name
class Meta:
managed = False
db_table = 'mytable'
# forms.py
class MyModelForm(forms.ModelForm):
birth_nation = forms.ModelChoiceField(
queryset=MyModel.objects.all(),
widget=autocomplete.ModelSelect2(url='country-autocomplete',
attrs={'data-minimum-input-length': 2}
)
)
class Meta:
model = MyModel
fields = ('__all__')
# views.py
class MyModelAutocomplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
if not self.request.user.is_authenticated():
return MyModel.objects.none()
qs = MyModel.objects.all()
if self.q:
qs = qs.filter(birth_nation__istartswith=self.q)
return qs
Natürlich, ich möchte, dass meine Entscheidungen bekommen, die dem birth_nation
entsprechen, was falsch in meinem Code?