0

modèlesDjango autocomplete filtre QuerySet lumière

class Reservation(models.Model): 
    company = models.ForeignKey(GuestContact, on_delete=models.PROTECT) 

class GuestContact(models.Model): 
    company = models.CharField(max_lenght=30) 
    last_name = models.CharField(max_lenght=30) 
    first_name = models.CharField(max_lenght=30) 
    contact_genere_id = models.ForeignKey(ContactGenere, on_delete=models.PROTECT) # 1 = company 2 = guest 

forme

class ReservationForm(ModelForm): 

    class Meta: 
     model = Reservation 
     fields = '__all__' 
     widgets = { 
      'company': autocomplete.ModelSelect2() 
    } 

vues

class GuestContactAutocomplete(autocomplete.Select2QuerySetView): 
def get_queryset(self): 

    qs = GuestContact.objects.filter(contact_genere_id=1) 

    return qs 

ce filtre queryset fonctionne en shell python, dans mon point de vue ce travail je ne vois pas tous les contacts pas seulement les contacts de l'entreprise. Pouvez-vous m'aider ?

Répondre

0

Je pense que vous avez besoin d'une URL pour vous voir: quelque chose comme ceci:

from .views import GuestContactAutocomplete 

urlpatterns = [ 
    url(
     r'^guest-contact-autocomplete/$', 
     GuestContactAutocomplete.as_view(), 
     name='guest-contact-autocomplete' 
    ), 
] 

Pour ensuite sous la forme, définissez ce nom d'URL pour le widget de champ de formulaire, comme ceci:

class ReservationForm(ModelForm): 

class Meta: 
    model = Reservation 
    fields = '__all__' 
    widgets = { 
     'company': autocomplete.ModelSelect2(url='guest-contact-autocomplete') 
}