2009-07-25 9 views
44

Je ne trouve nulle part, donc votre aide sera agréable pour moi :) Voici ce domaine:comment ajouter des données dans ManyToManyField?

categories = models.ManyToManyField(fragmentCategory) 

FragmentCategory:

class fragmentCategory(models.Model): 

     CATEGORY_CHOICES = (
         ('val1', 'value1'), 
         ('val2', 'value2'), 
         ('val3', 'value3'), 
         ) 

     name = models.CharField(max_length=20, choices=CATEGORY_CHOICES) 

Voici le formulaire pour envoyer:

<input type="checkbox" name="val1" /> 
<input type="checkbox" name="val2" /> 
<input type="checkbox" name="val3" /> 

J'ai essayé quelque chose comme ceci:

categories = fragmentCategory.objects.get(id=1), 

Ou:

categories = [1,2] 

Répondre

80

Il y a une page entière de la documentation Django devoted to this, bien indexé sur la page du contenu.

Comme que les États de la page, vous devez faire:

my_obj.categories.add(fragmentCategory.objects.get(id=1)) 

ou

my_obj.categories.create(name='val1') 
+5

Avez-vous besoin alors d'appeler 'my_obj.save()' pour sauver la mise à jour ou cela se fait automatiquement ? – CpILL

+2

@CPILL Semble être fait automatiquement. Essayez-le dans 'python manage.py shell'. – Rikki

Questions connexes