2012-05-11 4 views
0

Comment pouvez-vous transmettre plusieurs ID d'objet dans un formulaire Django? Existe-t-il un moyen de transmettre un tableau JavaScript contenant plusieurs ID d'objet dans un champ de formulaire et de le parcourir du côté serveur?Entrée multiple dans Django

Répondre

1

Vous pouvez utiliser le CommaSeparatedIntegerField pour stocker les ID, peut-être même avec un widget HiddenInput si vous remplissez dynamiquement les données en JavaScript.

Vous serez en mesure de parcourir une liste d'entiers à partir cleaned_data de votre formulaire après avoir validé le formulaire sur le côté serveur.

0

Vous pouvez créer un nouveau champ et remplacer la méthode 'to_python'.

L'exemple de base suivant crée un nouveau champ char acceptant une chaîne contenant des identifiants séparés par des virgules et renvoyant un ensemble de requêtes.

class MyField(forms.CharField): 
    def to_python(self, value): 
     ids = value.split(',') 

     return MyModel.objects.filter(id__in=ids) 

class MyForm(forms.Form): 
    ids = MyField() 

Jetez un oeil à how validation work in Django.