J'ai une forme comme ceci:utilisateur dans le formulaire Classe
class MyForm(forms.Form):
[...]
qui est rendu à mon avis:
if request.method == 'GET':
form = MyForm(request.GET)
Maintenant, je veux ajouter un champ de formulaire qui contient un ensemble de valeurs dans un champ de sélection, et le jeu de requête doit être filtré par l'utilisateur actuellement connecté. Alors j'ai changé la signature de la méthode pour qu'il contienne la demande objet:
class MyForm(forms.Form):
def __init__(self, user, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.myfield = forms.ChoiceField([('%s' % d.id, '%s' % d.name) for d in MyModel.objects.filter(owners = user)])
mais tout ce que je reçois après avoir rendu la forme est une référence d'objet sous forme de chaîne au lieu du select-widget. Il me semble qu'un champ de formulaire, une fois déclaré, ne peut pas être modifié.
Des idées?