2016-07-01 6 views
0

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?

Antwort

0

versuchen Sie dies:

def __str__(self): 
    return self.birth_nation 
Verwandte Themen