Ich kann es nirgendwo finden, also wird deine Hilfe nett für mich sein :) Hier ist das Feld:
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)
Hier ist das Formular zum Senden:
<input type="checkbox" name="val1" />
<input type="checkbox" name="val2" />
<input type="checkbox" name="val3" />
Ich habe so etwas versucht:
categories = fragmentCategory.objects.get(id=1),
Oder:
categories = [1,2]
django
django-models
IProblemFactory
quelle
quelle
my_obj.save()
, um das Update zu speichern, oder erfolgt dies automatisch?python manage.py shell
.Falls hier jemand anderes Probleme hat, das Administratorverhalten von Many2Many anzupassen, können Sie
self.instance.my_m2m.add(obj)
IhreModelForm.save
Überschreibung nicht aufrufen , daModelForm.save
später Ihr m2m ausgefüllt wird, ausself.cleaned_data['my_m2m']
dem Ihre Änderungen überschrieben werden. Rufen Sie stattdessen an:my_m2ms = list(self.cleaned_data['my_m2ms']) my_m2ms.extend(my_custom_new_m2ms) self.cleaned_data['my_m2ms'] = my_m2ms
(Es ist in Ordnung, das eingehende QuerySet in eine Liste zu konvertieren - das
ManyToManyField
macht das sowieso.)quelle