2010-08-21 4 views
2

J'essaie d'ajouter dans une classe avec le nom de saisie semi-automatique dans un de mes select.django modelform classe css pour sélectionner

class MyForm(ModelForm): 
    class Meta: 
     model = MyModel 
     exclude = ['user'] 

    def __init__(self, user, *args, **kwargs): 
     super(MyForm, self).__init__(*args, **kwargs) 
     self.fields['specie'].queryset = Specie.objects.all(attrs={'class':'autocomplete'}) 

Basé sur le code ci-dessus je reçois all() got an unexpected keyword argument 'attrs'

Répondre

7

Modifier le code existant comme illustré ci-dessous et essayez à nouveau.

self.fields['specie'].queryset = Specie.objects.all() 
self.fields['specie'].widget.attrs['class'] = 'autocomplete' 

Explication: la première ligne donne le queryset pour le domaine, à savoir les valeurs à choisir. Le côté droit filtre tous les objets de Specie. Un attribut HTML/CSS n'a aucune pertinence ici. La deuxième ligne indique au widget utilisé pour rendre le champ pour utiliser une classe CSS spécifique.

+1

Et vous ne pouvez pas oublier de changer l'écrasement de la méthode '__init__'. Il n'y a pas d'argument utilisateur! –

Questions connexes