Dans mon ModelForm j'ai créé une liste déroulante qui n'est liée à rien directement sur le modèle. Je passe donc dans le jeu de requête pour l'instanciation.Comment définir des attributs sur forms.ModelChoiceField?
class CallsForm(ModelForm):
def __init__(self, company, *args, **kwargs):
super(CallsForm, self).__init__(*args, **kwargs)
self.fields['test_1'].queryset = company.deal_set.all()
test_1 = forms.ModelChoiceField(queryset = '')
Cela fonctionne très bien. Cependant, comment puis-je spécifier certains attributs pour cela?
Pour les autres modèles lié-widgets que je fais habituellement ceci dans Meta:
class Meta:
model = Conversation
widgets = {
'notes': forms.Textarea(attrs={'class': 'red'}),
}
Mais il primordial dans mon cas ne serait pas logique.
J'ai essayé de définir les attributs lors de l'instanciation sans aucune chance.
test_1 = forms.ModelChoiceField(attrs={'class':'hidden'}, queryset = '')
mais il dit: __init__() got an unexpected keyword argument 'attrs'
Il doit sûrement y avoir un moyen ...