No puedo encontrarlo en ningún lado, por lo que su ayuda será buena para mí :) Aquí está ese campo:
categories = models.ManyToManyField(fragmentCategory)
Fragmento Categoría:
class fragmentCategory(models.Model):
CATEGORY_CHOICES = (
('val1', 'value1'),
('val2', 'value2'),
('val3', 'value3'),
)
name = models.CharField(max_length=20, choices=CATEGORY_CHOICES)
Aquí está el formulario para enviar:
<input type="checkbox" name="val1" />
<input type="checkbox" name="val2" />
<input type="checkbox" name="val3" />
Intenté algo como esto:
categories = fragmentCategory.objects.get(id=1),
O:
categories = [1,2]
django
django-models
IProblemFactory
fuente
fuente
my_obj.save()
para guardar la actualización o se hace automáticamente?python manage.py shell
.En caso de que alguien más termine aquí luchando por personalizar el comportamiento de ahorro de Many2Many del formulario de administración, no puede llamar
self.instance.my_m2m.add(obj)
a suModelForm.save
anulación, ya queModelForm.save
luego rellena su m2m desde elself.cleaned_data['my_m2m']
cual sobrescribe sus cambios. En su lugar llame a:my_m2ms = list(self.cleaned_data['my_m2ms']) my_m2ms.extend(my_custom_new_m2ms) self.cleaned_data['my_m2ms'] = my_m2ms
(Está bien convertir el QuerySet entrante en una lista, lo
ManyToManyField
hace de todos modos).fuente